Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mencapai Perbandingan Rentetan Tidak Sensitif Aksen dalam PostgreSQL?

Bagaimanakah Saya Boleh Mencapai Perbandingan Rentetan Tidak Sensitif Aksen dalam PostgreSQL?

Barbara Streisand
Barbara Streisandasal
2025-01-20 12:27:09234semak imbas

How Can I Achieve Accent-Insensitive String Comparisons in PostgreSQL?

Adakah PostgreSQL menyokong pengumpulan "abaikan aksen"?

PostgreSQL sendiri tidak menyokong himpunan "abaikan aksen" seperti yang dilakukan oleh Microsoft SQL Server. Walau bagaimanapun, dua alternatif tersedia:

Gunakan modul Tanpa Aksen

Komuniti Postgres mencipta modul tanpa aksen, yang menyediakan fungsi untuk mengalih keluar aksen daripada rentetan. Ini boleh digunakan untuk membuat himpunan "abaikan aksen" tersuai.

<code class="language-sql">CREATE EXTENSION unaccent;
CREATE COLLATION ignore_accent (locale='en_US', provider='unaccent');</code>

Gunakan pengumpulan ICU (PostgreSQL 12 atau lebih tinggi)

PostgreSQL 12 memperkenalkan sokongan untuk penyusunan ICU, yang menjadikan kombinasi dan pengisihan tidak sensitif huruf besar dan kecil dan tidak sensitif aksen mungkin. Walau bagaimanapun, koleksi ICU mempunyai penalti prestasi dan tidak boleh digunakan dengan operasi tertentu seperti padanan corak.

<code class="language-sql">CREATE COLLATION ignore_accent (provider = icu, locale = 'und-u-ks-level1-kc-true', deterministic = false);</code>

Amalan Terbaik

Untuk kegunaan umum, modul tanpa aksen adalah lebih cekap dan disyorkan untuk membuat pertanyaan "abaikan aksen". Ia membenarkan inlining fungsi dan pengindeksan ekspresi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Perbandingan Rentetan Tidak Sensitif Aksen dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn