Rumah > pangkalan data > tutorial mysql > Mengapa 'CODE!='C'' Tidak Termasuk Nilai NULL dalam Pertanyaan MySQL?

Mengapa 'CODE!='C'' Tidak Termasuk Nilai NULL dalam Pertanyaan MySQL?

Susan Sarandon
Lepaskan: 2025-01-09 19:37:45
asal
539 orang telah melayarinya

Why Does

Perbandingan nilai NULL dalam MySQL

Dalam MySQL, membandingkan lajur yang mengandungi nilai NULL boleh memberikan cabaran kerana tingkah laku berbeza daripada perbandingan kesamaan standard. Artikel ini meneroka sebab pertanyaan seperti "SELECT * from TABLE where CODE!='C'" mengecualikan baris dengan CODE=NULL, walaupun 'C' bukan NULL.

NULL tingkah laku perbandingan

Apabila membandingkan lajur dengan nilai bukan NULL (seperti "CODE!='C'"), pertanyaan mengembalikan baris yang CODE sepadan dengan 'C' dan mengecualikan semua nilai lain, termasuk NULL. Tingkah laku ini terhasil daripada SQL yang menganggap NULL sebagai nilai unik yang tidak mengambil bahagian dalam perbandingan standard.

Untuk memasukkan nilai NULL ​​dalam perbandingan, ia mesti disemak secara eksplisit menggunakan operator IS NULL atau IS NOT NULL. Sebagai contoh, pertanyaan berikut akan mengembalikan semua baris di mana KOD adalah NULL atau tidak sama dengan 'C':

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

Penjelasan tentang tingkah laku KOD!='C'

Sebab "CODE!='C'" tidak mengembalikan baris dengan CODE=NULL ialah pertanyaan akan dinilai palsu untuk sebarang perbandingan yang melibatkan NULL. Walaupun 'C' bukan NULL, membandingkannya dengan nilai NULL akan sentiasa menghasilkan palsu.

Pengendali perbandingan alternatif

MySQL menyediakan operator perbandingan alternatif "<=" (kurang daripada atau sama dengan) yang boleh digunakan untuk membandingkan nilai yang mengandungi NULL. Penilaian "x <= y" mengembalikan benar jika x kurang daripada, sama dengan, atau NULL, palsu sebaliknya.

Anda boleh mengembalikan semua baris di mana KOD adalah NULL atau tidak sama dengan 'C' dengan menggunakan "CODE <= 'C' OR CODE IS NULL" dan bukannya "CODE!='C'".

Atas ialah kandungan terperinci Mengapa 'CODE!='C'' Tidak Termasuk Nilai NULL dalam Pertanyaan MySQL?. 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