Получить результаты ASCII в запросах MySql cli

Я пытаюсь поместить следующее значение в таблицу mysql:

lT~:uc9%7 4M?;~=0=^

так что я:

update table set field='lT~:uc9%7\04M?;~=0=^' where id='1';

когда я выбираю, я получаю:

select * from table where id='1';

результат:

lT~:uc9%7 4M?;~=0=^

Я знаю, это потому, что \0 интерпретируется как пространство. Как я могу обойти это. Мне нужно получить фактическое значение \0

1 ответ

Если вы хотите получить значение

lT~:uc9%7\04M?;~=0=^

в вашу область, вы должны использовать

UPDATE yourtable SET field='lT~:uc9%7\\04M?;~=0=^' where id='1';

потому что обратная косая черта - это escape-символ MySQL, см.

Строковые литералы

Escape Sequence | Character represented by sequence
----------------------------------------------------
\0 | An ASCII NUL (0x00) character
\\ | A backslash ("\") character.

поэтому \0 не интерпретируется как пространство. Если вы хотите использовать пробел в строке, просто используйте пробел.

licensed under cc by-sa 3.0 with attribution.