Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment échapper les caractères spéciaux dans MySQL ?

Les informations fournies dans cette réponse peuvent conduire à des pratiques de programmation non sécurisées.

Les informations fournies ici dépendent fortement de la configuration de MySQL, y compris (mais sans s'y limiter) la version du programme, le client de la base de données et le codage de caractères utilisé.

Voir 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.

Donc, vous avez besoin

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

Bien que Bill Karwin note ci-dessous , l'utilisation de guillemets doubles pour les délimiteurs de chaîne n'est pas du SQL standard. Il est donc recommandé d'utiliser des guillemets simples. Cela simplifie les choses :

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