Dalam MySQL, mungkin sukar untuk mendapatkan baris yang mengandungi nilai nol menggunakan operator perbandingan standard (=). Anomali ini berpunca daripada sifat unik nilai nol dalam SQL.
Mari kita gambarkan ini dengan contoh:
SELECT pid FROM planets WHERE userid = NULL
Pertanyaan ini dijangka mengembalikan baris di mana lajur userid mempunyai nilai NULL. Walau bagaimanapun, dalam banyak kes, ia mengembalikan set kosong, walaupun data terdapat dalam jadual (seperti yang disahkan melalui phpMyAdmin).
Isu timbul kerana null in SQL berbeza daripada nilai lain. Menurut salah satu daripada 12 peraturan Codd, null tidak boleh sama dengan mana-mana nilai lain, termasuk nilainya sendiri. Akibatnya, menggunakan operator = untuk membandingkan lajur kepada NULL akan sentiasa mengembalikan palsu.
Untuk berjaya mendapatkan baris dengan nilai nol, kita mesti menggunakan operator IS NULL :
SELECT pid FROM planets WHERE userid IS NULL
Dengan menggunakan IS NULL, kami memeriksa sama ada lajur itu benar-benar batal daripada cuba untuk bandingkan dengan NULL menggunakan operator =.
Walau bagaimanapun, adalah penting untuk menggunakan pilihan lain sebelum mengubah suai struktur meja atau enjin.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengambil Baris dengan Berkesan dengan Nilai NULL dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!