MySQL: Memilih Baris dengan Nilai NULL
Semasa cuba mendapatkan semula baris di mana lajur tertentu mengandungi nilai NULL, pengguna menghadapi kosong set keputusan. Percanggahan ini timbul walaupun jadual memaparkan nilai NULL apabila dilihat dalam phpMyAdmin.
Pertanyaan yang dimaksudkan menyerupai yang berikut:
SELECT pid FROM planets WHERE userid = NULL
Selepas meneroka pelbagai cadangan, termasuk menyemak "NULL" atau " null" dan mencari ruang kosong, pengguna tetap tidak dapat mendapatkan semula baris yang dikehendaki. Mengesyaki bahawa enjin storan MyISAM mungkin menjadi faktor penyumbang, pengguna menukar jadual kepada InnoDB. Walau bagaimanapun, isu ini berterusan.
Menyelesaikan Isu
Penyelesaian terletak pada memahami sifat istimewa nilai SQL NULL. Tidak seperti nilai tradisional, NULL tidak boleh disamakan menggunakan tanda sama (=). Untuk mendapatkan semula baris dengan nilai NULL dengan betul, sintaks berikut mesti digunakan:
WHERE field IS NULL
Pembezaan ini berpunca daripada fakta bahawa NULL mewakili nilai yang tidak diketahui atau tidak ditentukan, menjadikannya mustahil untuk menentukan sama ada ia benar-benar sama dengan apa sahaja, termasuk dirinya sendiri. Prinsip ini termaktub dalam Peraturan Codd 3.
Dengan melaraskan pertanyaan kepada:
SELECT pid FROM planets WHERE userid IS NULL
pengguna kini sepatutnya berjaya mendapatkan semula baris dengan nilai NULL.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris dengan Nilai NULL dengan betul dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!