Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uciec od znaków specjalnych w MySQL?

Informacje zawarte w tej odpowiedzi mogą prowadzić do niebezpiecznych praktyk programistycznych.

Podane tutaj informacje zależą w dużej mierze od konfiguracji MySQL, w tym (ale nie tylko) od wersji programu, klienta bazy danych i używanego kodowania znaków.

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

Więc potrzebujesz

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

Chociaż jako Bill Karwin zauważa poniżej , używanie podwójnych cudzysłowów jako ograniczników ciągów nie jest standardowym językiem SQL, więc dobrą praktyką jest używanie pojedynczych cudzysłowów. To upraszcza rzeczy:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zmienić hasło roota mysql?

  2. Usuwanie wierszy za pomocą MySQL LEFT JOIN

  3. DOS i DONT dla indeksów

  4. Jak mogę wyświetlić te same dane identyfikatora z pętlą while w PHP?

  5. Jak mogę policzyć liczbę wierszy zwróconych przez zapytanie MySQL?