De informatie in dit antwoord kan leiden tot onveilige programmeerpraktijken.
De informatie die hier wordt verstrekt, is sterk afhankelijk van de MySQL-configuratie, inclusief (maar niet beperkt tot) de programmaversie, de databaseclient en de gebruikte tekencodering.
Zie 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.
Dus je moet
select * from tablename where fields like "%string \"hi\" %";
Hoewel als Bill Karwin hieronder opmerkt , is het gebruik van dubbele aanhalingstekens voor tekenreeksscheidingstekens geen standaard SQL, dus het is een goede gewoonte om enkele aanhalingstekens te gebruiken. Dit vereenvoudigt de zaken:
select * from tablename where fields like '%string "hi" %';