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

Mệnh đề Mysql LIKE và các từ riêng biệt trong một trường

Bạn có thể sử dụng REGEXP để khớp với bất kỳ từ nào trong chuỗi tìm kiếm của mình:

select *
from tbl
where
  title REGEXP CONCAT('[[:<:]](', REPLACE('Acme burger', ' ', '|'), ')[[:>:]]')

Xin lưu ý rằng điều này sẽ không hiệu quả lắm. Xem fiddle tại đây .

Nếu bạn cần đối sánh mọi từ trong chuỗi của mình, bạn có thể sử dụng truy vấn như sau:

select *
from tbl
where
  title REGEXP CONCAT('[[:<:]]', REPLACE('Acme burger', ' ', '[[:>:]].*[[:<:]]'), '[[:>:]]')

Fiddle tại đây . Nhưng các từ phải theo đúng thứ tự (ví dụ:'Acme burger' sẽ khớp, 'burger Acme' thì không). Có một REGEXP để khớp mọi từ theo bất kỳ thứ tự nào, nhưng nó không được MySql hỗ trợ, trừ khi bạn cài đặt một UDF hỗ trợ Perl regexp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO mysql:Làm thế nào để biết liệu chèn thành công

  2. tìm hàng liên tiếp cuối cùng

  3. csv tải lên không hoạt động

  4. Kết nối cơ sở dữ liệu MySQL từ Android

  5. MySQL:Mệnh đề IN cho ngày GIỮA ngày bắt đầu và ngày kết thúc?