Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan Perbandingan Rentetan Case-Insensitive dalam PostgreSQL?

Bagaimana untuk Melakukan Perbandingan Rentetan Case-Insensitive dalam PostgreSQL?

Barbara Streisand
Barbara Streisandasal
2024-12-26 17:27:10733semak imbas

How to Perform Case-Insensitive String Comparisons in PostgreSQL?

Perbandingan Rentetan Tidak Peka Huruf dalam PostgreSQL

Dalam PostgreSQL, melakukan perbandingan rentetan tidak sensitif huruf besar boleh menjadi penting untuk banyak senario. Walaupun pengendali like dan ilike tersedia untuk nilai tunggal, ia tidak meluas ke set.

Untuk menangani had ini, PostgreSQL menyediakan pilihan berikut untuk perbandingan rentetan tidak sensitif huruf besar/kecil:

1. Menggunakan Operator ilike:

Operator ilike adalah serupa dengan suka, tetapi ia melakukan perbandingan tidak peka huruf besar-besaran. Ia boleh digunakan seperti berikut:

select *
where email ilike '[email protected]'

2. Melarikan Diri Watak Istimewa:

Apabila menggunakan operator ilike dengan aksara khas dalam rentetan anda, adalah penting untuk melepaskannya dengan betul. Anda boleh mencapai ini menggunakan fungsi replace():

where email ilike replace(replace(replace(, '~', '~~'), '%', '~%'), '_', '~_') escape '~'

Sebagai alternatif, anda boleh mencipta fungsi tersuai untuk melepaskan teks.

3. Membandingkan Terhadap Tatasusunan:

Jika anda perlu membandingkan dengan tatasusunan rentetan, anda boleh menggunakan mana-mana operator:

where email ilike any(array['[email protected]', '[email protected]'])

Dengan menggunakan teknik ini, anda boleh melaksanakan kes dengan berkesan -perbandingan rentetan tidak sensitif dalam PostgreSQL untuk kedua-dua nilai tunggal dan set nilai.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Perbandingan Rentetan Case-Insensitive 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