sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo escapo los caracteres especiales en MySQL?

La información proporcionada en esta respuesta puede conducir a prácticas de programación inseguras.

La información proporcionada aquí depende en gran medida de la configuración de MySQL, incluida (pero no limitada a) la versión del programa, el cliente de la base de datos y la codificación de caracteres utilizada.

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.

Entonces necesitas

select * from tablename where fields like "%string \"hi\" %";

Aunque como Bill Karwin anota a continuación , el uso de comillas dobles para los delimitadores de cadena no es SQL estándar, por lo que es una buena práctica usar comillas simples. Esto simplifica las cosas:

select * from tablename where fields like '%string "hi" %';