Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để tìm kiếm cụm từ Like O '% trong MySql?

Bạn đã tiêm một dấu gạch chéo ngược theo nghĩa đen. Như vậy là đủ:

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

Để kiểm tra:

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

Cập nhật: Đã có một câu trả lời được chấp nhận nên tôi sẽ chỉ thêm một vài điều làm rõ.

Đầu tiên, tôi đã bỏ qua thực tế rằng dữ liệu được lưu trữ đã bị hỏng. Không cần phải nói, điều đó giải thích tại sao person_sname = 'O\\\'Brien' là đúng.

Thứ hai, \ ký tự có hai cách sử dụng trong cú pháp MySQL:

  1. Đó là ký tự được sử dụng để soạn trình tự thoát :\n , \t ...
  2. Đây là ký tự thoát mặc định để chèn chữ %_ ký tự trong biểu thức LIKE :foo LIKE '%abc\%def%'

Vấn đề là việc chèn một \ biểu tượng trong biểu thức LIKE sẽ kích hoạt cả hai hành vi, vì vậy bạn thực sự cần phải chèn bốn dấu gạch chéo ngược để lấy một :

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

... trừ khi bạn thay đổi nghĩa thứ hai bằng ESCAPE mệnh đề:

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

Tất nhiên, nếu dữ liệu không bị hỏng, bạn có thể chỉ cần:

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. Làm cách nào để ngăn truy vấn này in hai lần cùng một kết quả?

  2. CHỌN trường MySQL có chứa một chuỗi con

  3. Thả khóa ngoại không tên trong MySql

  4. mysql Compress () với sqlalchemy

  5. MySQL:Cắt ngắn Bảng so với Xóa khỏi Bảng