Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana saya bisa mencari frase Like O'% di MySql?

Anda menyuntikkan backslash literal. Ini cukup:

SELECT person_sname
FROM people
WHERE person_sname = 'O\'Brien'

Untuk menguji:

SELECT 'O\\\'Brien', 'O\'Brien'

Pembaruan: Sudah ada jawaban yang diterima jadi saya hanya akan menambahkan beberapa klarifikasi.

Pertama, saya telah mengabaikan fakta bahwa data yang disimpan rusak. Tak perlu dikatakan, itu menjelaskan mengapa person_sname = 'O\\\'Brien' benar.

Kedua, \ karakter memiliki dua penggunaan dalam sintaks MySQL:

  1. Ini adalah karakter yang digunakan untuk menulis urutan pelarian :\n , \t ...
  2. Ini adalah karakter escape default untuk menyisipkan % literal dan _ karakter dalam ekspresi SUKAI :foo LIKE '%abc\%def%'

Masalahnya adalah memasukkan \ simbol dalam ekspresi LIKE memicu kedua perilaku sehingga Anda benar-benar perlu memasukkan empat garis miring terbalik untuk mendapatkan satu :

person_sname like 'O\\\\\'Brien'

... kecuali jika Anda mengubah arti kedua dengan ESCAPE klausa:

person_sname like 'O\\\'Brien' escape '|'

Tentu saja, jika data tidak rusak, Anda cukup:

person_sname = 'O\'Brien'
person_sname like 'O\'Brien'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. F# error 'error FS0039:Namespace atau modul 'MySql' tidak ditentukan'?

  2. Kesalahan Ruby/MySQL yang Membingungkan:paket tidak valid:nomor urut tidak cocok

  3. Bagaimana cara memasukkan nilai dalam array PHP ke tabel MySQL?

  4. kueri pembaruan mysql dengan sub kueri

  5. Pilih semua kolom lebih besar dari beberapa nilai