Rumah > pangkalan data > tutorial mysql > Mengapa Operator `!=` MySQL Mengecualikan Baris dengan Nilai NULL?

Mengapa Operator `!=` MySQL Mengecualikan Baris dengan Nilai NULL?

Susan Sarandon
Lepaskan: 2025-01-09 19:31:42
asal
1000 orang telah melayarinya

Why Does MySQL's `!=` Operator Exclude Rows with NULL Values?

MySQL: Memahami Perbandingan Nilai NULL

Ikhtisar:
Bekerja dengan berkesan dengan MySQL memerlukan pemahaman yang jelas tentang cara nilai NULL berkelakuan dalam operasi perbandingan. Artikel ini memfokuskan pada gelagat nilai NULL apabila menggunakan operator != (tidak sama).

Masalahnya: Katakan jadual termasuk lajur CODE yang membenarkan nilai NULL. Mengapakah pertanyaan di bawah meninggalkan baris yang CODE ialah NULL, walaupun != digunakan?

<code class="language-sql">SELECT * FROM TABLE WHERE CODE!='C'</code>
Salin selepas log masuk

Penyelesaian: Pengendali != MySQL tidak menghasilkan hasil benar/salah apabila membandingkan nilai bukan NULL kepada NULL. Perbandingan dianggap tidak tentu.

Untuk mengendalikan NULL dengan betul, gunakan IS NULL atau IS NOT NULL. Pertanyaan berikut dengan tepat mengecualikan baris dengan CODE sama dengan 'C' atau NULL:

<code class="language-sql">SELECT * FROM TABLE WHERE CODE IS NULL OR CODE!='C'</code>
Salin selepas log masuk

Pendekatan ini memastikan kedua-dua keadaan dinilai secara bebas, tidak termasuk hanya baris yang memenuhi mana-mana syarat.

Penjelasan Lanjut: Walaupun kadangkala dilihat dalam dokumentasi atau forum MySQL, CODE != '' bukan pengganti CODE IS NOT NULL. Operator != membandingkan nilai; IS NULL menyemak ketiadaan nilai.

Oleh itu, pertanyaan ini bukan setara:

<code class="language-sql">SELECT * FROM TABLE WHERE CODE != ''
SELECT * FROM TABLE WHERE CODE IS NOT NULL</code>
Salin selepas log masuk

Menggunakan IS NULL dan IS NOT NULL memastikan pengendalian dan ujian nilai NULL yang betul dalam pertanyaan MySQL.

Atas ialah kandungan terperinci Mengapa Operator `!=` MySQL Mengecualikan Baris dengan Nilai NULL?. 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