Rumah > pangkalan data > tutorial mysql > Mengapa `NULL != NULL` Mengembalikan PALSU dalam SQL?

Mengapa `NULL != NULL` Mengembalikan PALSU dalam SQL?

Linda Hamilton
Lepaskan: 2024-12-31 20:34:10
asal
362 orang telah melayarinya

Why Does `NULL != NULL` Return FALSE in SQL?

Mengapa Ketaksamaan NULL adalah Palsu

Aplikasi logik ternary SQL memainkan peranan penting dalam memahami mengapa NULL tidak sama dengan NULL. Dalam logik ternary, NULL mewakili nilai yang tidak diketahui, bukannya nilai tertentu. Konsep ini membimbing penilaian ujian kesaksamaan dan ketaksamaan.

Apabila menilai kesaksamaan, dua nilai NULL dianggap tidak sama atau tidak sama. Ini kerana keadaan tidak diketahui tidak boleh dibandingkan dengan keadaan tidak diketahui secara pasti. Oleh itu, ungkapan (NULL = NULL) mengembalikan NULL, menandakan kekurangan jawapan yang jelas.

Dalam kes ujian ketaksamaan, (NULL != NULL) juga mengembalikan FALSE. Ini kerana logik ternary menentukan bahawa nilai yang tidak diketahui tidak boleh dinyatakan secara muktamad sebagai tidak sama dengan nilai yang tidak diketahui yang lain. Oleh itu, masih tidak diketahui sama ada ia sama atau tidak.

Implikasi untuk Pemeriksaan Ketaksamaan

Perbincangan di atas menjelaskan bahawa ungkapan (A != B) adalah memadai untuk menguji ketaksamaan, walaupun sama ada A atau B adalah NULL. Ini kerana peraturan logik ternary menentukan bahawa sebarang operasi yang melibatkan nilai NULL akan kekal tidak diketahui. Oleh itu, ungkapan (A != B) mengembalikan FALSE jika kedua-dua A dan B adalah NULL, menunjukkan kekurangan jawapan yang pasti.

Jika anda secara eksplisit memerlukan keputusan TRUE apabila kedua-dua A dan B adalah NULL, anda boleh menggunakan ungkapan yang lebih bertele-tele:

WHERE ((A != B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL))
Salin selepas log masuk

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa keadaan ini memenuhi kes penggunaan tertentu di mana Hasil TRUE dikehendaki untuk nilai NULL. Dalam kebanyakan kes, ungkapan yang lebih mudah (A != B) sudah memadai kerana ia mengikut prinsip logik ternari.

Atas ialah kandungan terperinci Mengapa `NULL != NULL` Mengembalikan PALSU dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan