Mengoptimumkan Semakan Rentetan Nol dan Kosong dalam PostgreSQL
Pertanyaan PostgreSQL selalunya memerlukan penyemakan rentetan null atau kosong. Walaupun coalesce()
menawarkan penyelesaian, ia boleh menjadi kurang elegan. Artikel ini membentangkan kaedah yang lebih cekap dan ringkas.
Amalan Terbaik: Perbandingan Rentetan Langsung
Pendekatan paling berkesan menggunakan perbandingan rentetan langsung: stringexpression = ''
. Ini memberikan hasil yang jelas:
true
: Untuk rentetan kosong (''
) atau rentetan yang mengandungi hanya ruang (dengan char(n)
).null
: Untuk nilai null
.false
: Untuk semua rentetan lain.Ungkapan Bersyarat
Untuk menyemak sama ada rentetan adalah batal atau kosong:
(stringexpression = '') IS NOT FALSE
(stringexpression <> '') IS NOT TRUE
Untuk menyemak sama ada rentetan bukan nol atau kosong:
stringexpression <> ''
char(n)
Gelagat Jenis Data
Ingat bahawa char(n)
menganggap rentetan kosong dan rentetan ruang sahaja sebagai setara. Ungkapan di atas berfungsi dengan lancar dengan char(n)
.
Contoh
<code class="language-sql">SELECT 'foo'::char(5) = ''::char(5) AS eq1, ''::char(5) = ' '::char(5) AS eq2, ''::char(5) = ' '::char(5) AS eq3;</code>
Output:
<code>eq1 | eq2 | eq3 ---- | ---- | ---- t | t | t</code>
Ringkasan
Menggunakan stringexpression = ''
menyediakan cara yang bersih dan cekap untuk mengendalikan semakan rentetan kosong dan kosong dalam PostgreSQL, terutamanya apabila mempertimbangkan gelagat char(n)
jenis data. Ini memudahkan pertanyaan anda dan meningkatkan kebolehbacaan.
Atas ialah kandungan terperinci Bagaimana untuk Memeriksa Rentetan Null atau Kosong dengan Cekap dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!