SQL's != Operator dan NULL: Salah Faham Biasa
Dalam SQL, menggunakan !=
(atau <>
) untuk menyemak nilai NULL membawa kepada hasil yang tidak dijangka. Tidak seperti IS NOT NULL
, yang mengenal pasti nilai bukan NULL dengan betul, !=
dan <>
tidak mengembalikan padanan jika dibandingkan dengan NULL. Tingkah laku ini berpunca daripada sifat asas NULL dalam SQL.
NULL mewakili ketiadaan nilai, bukan nilai tertentu itu sendiri. Oleh itu, pengendali perbandingan standard seperti !=
dan <>
tidak boleh menentukan kesamaan atau ketidaksamaan dengan NULL kerana tiada nilai yang ditentukan untuk dibandingkan.
SQL menggunakan predikat IS NULL
dan IS NOT NULL
untuk mengendalikan perbandingan dengan NULL. Predikat ini menilai kewujudan atau ketidakwujudan sesuatu nilai, bukan kesamaannya dengan nilai lain.
Ini konsisten merentas pangkalan data SQL utama, bukan hanya SQL Server. Ini adalah akibat langsung daripada takrifan NULL sebagai ketiadaan nilai.
Perkara Penting yang Perlu Diingati:
IS NOT NULL
untuk menyemak sama ada nilai bukan NULL.= 'YOUR_VALUE'
untuk membandingkan nilai dengan nilai bukan NULL yang khusus.=
, !=
, <>
) dengan NULL tidak ditentukan dan tidak akan menghasilkan hasil yang diharapkan. Gunakan IS NULL
atau IS NOT NULL
sebaliknya.Atas ialah kandungan terperinci Mengapa != Gagal Membandingkan Dengan NULL dalam SQL, dan Apa yang Perlu Saya Gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!