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

PostgreSQL ngược LIKE

Trường hợp đơn giản của bạn có thể được giải quyết bằng một truy vấn đơn giản sử dụng ANY cấu trúc và ~* :

SELECT *
FROM   tbl
WHERE  col ~* ANY (string_to_array('The ships hung in the sky ... bricks don’t', ' '));

~* là toán tử đối sánh biểu thức chính quy không phân biệt chữ hoa chữ thường. Tôi sử dụng cái đó thay vì ILIKE vì vậy chúng tôi có thể sử dụng các từ gốc trong chuỗi của bạn mà không cần phải chèn % cho ILIKE . Kết quả giống nhau - ngoại trừ các từ chứa các ký tự đặc biệt:%_\ cho ILIKE!$()*+.:<=>?[\]^{|}- cho các mẫu biểu thức chính quy. Bạn có thể cần phải thoát các ký tự đặc biệt theo một trong hai cách để tránh bị bất ngờ. Đây là một hàm cho biểu thức chính quy:

  • Hàm Escape cho biểu thức chính quy hoặc mẫu LIKE

Nhưng tôi có những nghi ngờ dai dẳng rằng đó sẽ là tất cả những gì bạn cần. Xem bình luận của tôi. Tôi nghi ngờ bạn cần Tìm kiếm toàn văn bản với từ điển phù hợp với ngôn ngữ tự nhiên của bạn để cung cấp nguồn gốc từ hữu ích ...

Có liên quan:

  • Toán tử IN so với BẤT KỲ trong PostgreSQL
  • Các biến thể hiệu suất truy vấn LIKE của PostgreSQL
  • Đối sánh mẫu với LIKE, SIMILAR TO hoặc biểu thức chính quy trong PostgreSQL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách xử lý các diễn biến cơ sở dữ liệu Play Framework 2 trong quá trình sản xuất

  2. Truy vấn PostgreSQL để đếm / nhóm theo ngày và hiển thị các ngày không có dữ liệu

  3. Cách giao dịch_timestamp () hoạt động trong PostgreSQL

  4. Cách so sánh hai mảng và chỉ chọn các phần tử không phù hợp Trong postgres

  5. Cách pg_typeof () hoạt động trong PostgreSQL