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

Cách tìm kiếm nếu toàn bộ từ tồn tại trong một chuỗi trong Postgres

Bạn có thể sử dụng một biểu thức chính quy cho điều này:

where title ~* '(\mphone\M)|(\msamsung\M)'

Ở trên chỉ trả về các giá trị trong đó phone hoặc samsung là những từ hoàn chỉnh. Các công cụ sửa đổi regex \m\M làm cho mẫu chỉ phù hợp với toàn bộ các từ.

Toán tử regex ~* làm cho điều này không phân biệt chữ hoa chữ thường. Biểu thức trên sẽ trả về Samsung Phone hoặc Google Phone nhưng không phải Sam's House .

Nếu bạn muốn thêm nhiều từ hơn, chỉ cần thêm chúng bằng toán tử "hoặc" |

where title ~* '(\mphone\M)|(\msamsung\M)|(\mbhat\M)'

Lưu ý rằng loại tìm kiếm này sẽ không quá nhanh. Biểu thức chính quy rất đắt nên chúng không thể sử dụng bất kỳ chỉ mục nào.



  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 chúng ta có thể làm cho “statement_timeout” hoạt động bên trong một hàm?

  2. cột ngày không thể được truyền tự động để nhập dấu thời gian với múi giờ django / postgres

  3. Quy trình làm việc từ xa Symfony2 + Netbeans (feat. Git)

  4. Phương pháp hay nhất về xử lý quan hệ giữa các bảng trong Spring Data R2dbc

  5. Thay thế chuỗi bằng số ngẫu nhiên