PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Aksen PostgreSQL + pencarian tidak peka huruf besar-kecil

Jika Anda perlu "menggabungkan dengan case-sensitive", ada beberapa opsi, tergantung pada kebutuhan Anda.

Mungkin yang paling sederhana, buat ekspresi indeks huruf besar-kecil.

Membangun fungsi f_unaccent() tercantum dalam jawaban yang dirujuk:

  • Apakah PostgreSQL mendukung kumpulan "aksen tidak sensitif"?
CREATE INDEX users_lower_unaccent_name_idx ON users(lower(f_unaccent(name)));

Kemudian:

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

Atau anda dapat membuat lower() ke dalam fungsi f_unaccent() , untuk mendapatkan sesuatu seperti f_lower_unaccent() .

Atau (terutama jika Anda perlu melakukan pencocokan pola fuzzy) Anda dapat menggunakan indeks trigram yang disediakan oleh modul tambahan pg_trgm membangun fungsi di atas, yang juga mendukung ILIKE . Detail:

  • SEPERTI RENDAH vs iLIKE

Saya menambahkan catatan ke jawaban yang dirujuk.

Atau anda dapat menggunakan modul tambahan kutipan :

  • Pembatasan unik yang dapat ditunda dan tidak peka huruf besar/kecil


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat daftar kunci asing tabel

  2. menyimpan objek python di tabel postgres dengan acar

  3. mysql_insert_id alternatif untuk postgresql

  4. Kurangi Bulan dari Tanggal di PostgreSQL

  5. Masukkan Kamus Python menggunakan Psycopg2