Mysql
 sql >> Database >  >> RDS >> Mysql

Come faccio a sfuggire ai caratteri speciali in MySQL?

Le informazioni fornite in questa risposta possono portare a pratiche di programmazione non sicure.

Le informazioni fornite qui dipendono fortemente dalla configurazione di MySQL, inclusi (ma non limitati a) la versione del programma, il client del database e la codifica dei caratteri utilizzata.

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

Quindi hai bisogno di

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

Sebbene come Bill Karwin note di seguito , l'uso delle virgolette doppie per i delimitatori di stringa non è SQL standard, quindi è buona norma utilizzare le virgolette singole. Questo semplifica le cose:

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