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

Tìm kiếm có dấu + không phân biệt chữ hoa chữ thường PostgreSQL

Nếu bạn cần "kết hợp với phân biệt chữ hoa chữ thường", có một số tùy chọn, tùy thuộc vào yêu cầu chính xác của bạn.

Có thể đơn giản nhất, hãy làm cho chỉ mục biểu thức không phân biệt chữ hoa chữ thường.

Xây dựng dựa trên hàm f_unaccent() được đặt trong câu trả lời được tham chiếu:

  • PostgreSQL có hỗ trợ các ảnh ghép "không nhạy cảm với trọng âm" không?
CREATE INDEX users_lower_unaccent_name_idx ON users(lower(f_unaccent(name)));

Sau đó:

SELECT *
FROM   users
WHERE  lower(f_unaccent(name)) = lower(f_unaccent('João'));

Hoặc bạn có thể tạo lower() vào hàm f_unaccent() , để lấy một cái gì đó như f_lower_unaccent() .

Hoặc (đặc biệt nếu bạn cần thực hiện đối sánh mẫu mờ), bạn có thể sử dụng chỉ mục bát quái được cung cấp bởi mô-đun bổ sung pg_trgm xây dựng trên chức năng trên, cũng hỗ trợ ILIKE . Chi tiết:

  • LOWER LIKE so với iLIKE

Tôi đã thêm ghi chú vào câu trả lời được tham khảo.

Hoặc bạn có thể sử dụng mô-đun bổ sung citext :

  • Ràng buộc duy nhất có thể trì hoãn, không phân biệt chữ hoa chữ thường


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liên kết tham số mảng với truy vấn gốc

  2. PostgreSQL cách nối giá trị khoảng thời gian '2 ngày'

  3. Các tùy chọn đa thai cho PostgreSQL

  4. Chia cột thành nhiều hàng trong Postgres

  5. Tổng hợp (x, y) các đám mây điểm tọa độ trong PostgreSQL