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

Postgres LIKE '...%' không sử dụng chỉ mục

PostgreSQL sẽ thực hiện việc này nếu bạn xây dựng chỉ mục bằng text_pattern_ops hoặc nếu bạn đang sử dụng đối chiếu C.

Nếu bạn đang sử dụng một số đối chiếu ngẫu nhiên khác, PostgreSQL không thể suy ra nhiều điều về nó. Hãy quan sát điều này, trong đối chiếu "en_US.utf8" rất phổ biến.

select * from (values ('03.000221.1'), ('03.0002212'), ('03.000221.3')) f(x) order by x;
      x      
-------------
 03.000221.1
 03.0002212
 03.000221.3

Sau đó, điều này tự nhiên dẫn đến câu trả lời sai với truy vấn của bạn:

select * from (values ('03.000221.1'), ('03.0002212'), ('03.000221.3')) f(id)
    where ((id >= '03.000221.'::text) AND (id < '03.000221.Z'::text))
     id      
-------------
 03.000221.1
 03.0002212
 03.000221.3



  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ưu trữ PostgreSQL được quản lý hoàn toàn trên AWS và Azure ra mắt kịp thời cho những lần di chuyển kế thừa

  2. PostgreSQL - làm cho hàng đầu tiên hiển thị dưới dạng tổng số các hàng khác

  3. Postgresql tìm tổng dung lượng đĩa được cơ sở dữ liệu sử dụng

  4. Postgres CONSTRAINT DUY NHẤT cho mảng

  5. PostgreSQL:Sửa đổi CHỦ SỞ HỮU trên tất cả các bảng đồng thời trong PostgreSQL