Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como faço para escapar caracteres especiais no MySQL?


As informações fornecidas nesta resposta podem levar a práticas de programação inseguras.

As informações fornecidas aqui dependem muito da configuração do MySQL, incluindo (mas não se limitando a) a versão do programa, o cliente do banco de dados e a codificação de caracteres usada.

Consulte http://dev.mysql.com/doc/ refman/5.0/en/string-literals.html
MySQL recognizes the following escape sequences.
\0     An ASCII NUL (0x00) character.
\'     A single quote (“'”) character.
\"     A double quote (“"”) character.
\b     A backspace character.
\n     A newline (linefeed) character.
\r     A carriage return character.
\t     A tab character.
\Z     ASCII 26 (Control-Z). See note following the table.
\\     A backslash (“\”) character.
\%     A “%” character. See note following the table.
\_     A “_” character. See note following the table.

Então você precisa
select * from tablename where fields like "%string \"hi\" %";

Embora como Bill Karwin observa abaixo , usar aspas duplas para delimitadores de string não é SQL padrão, portanto, é uma boa prática usar aspas simples. Isso simplifica as coisas:
select * from tablename where fields like '%string "hi" %';