Rumah > pangkalan data > tutorial mysql > Bagaimanakah Nilai NULL Mempengaruhi Keputusan NOT IN Klausa dalam SQL?

Bagaimanakah Nilai NULL Mempengaruhi Keputusan NOT IN Klausa dalam SQL?

Susan Sarandon
Lepaskan: 2025-01-23 12:42:12
asal
491 orang telah melayarinya

How Do NULL Values Affect the Results of NOT IN Clauses in SQL?

Memahami NULL dalam Klausa NOT IN SQL

Tingkah laku fasal NOT IN dalam SQL dipengaruhi dengan ketara oleh kehadiran nilai NULL. Perbezaan halus ini boleh membawa kepada hasil yang tidak dijangka jika tidak dipertimbangkan dengan teliti. Contoh berikut menggambarkan tingkah laku ini.

Contoh Pertanyaan 1:

<code class="language-sql">select 'true' where 3 in (1, 2, 3, null)</code>
Salin selepas log masuk

Pertanyaan ini dinilai kepada:

<code>3 = 1 OR 3 = 2 OR 3 = 3 OR 3 = NULL</code>
Salin selepas log masuk

Oleh kerana 3 = 3 adalah benar, pertanyaan itu mengembalikan hasil.

Contoh Pertanyaan 2:

<code class="language-sql">select 'true' where 3 not in (1, 2, null)</code>
Salin selepas log masuk

Ini bersamaan dengan:

<code class="language-sql">3 <> 1 AND 3 <> 2 AND 3 <> NULL</code>
Salin selepas log masuk

Dengan ANSI_NULLS didayakan (tetapan standard dalam kebanyakan pangkalan data SQL), 3 <> NULL menilai kepada UNKNOWN. Keadaan AND dengan UNKNOWN menghasilkan UNKNOWN dan UNKNOWN dianggap sebagai palsu dalam klausa WHERE. Akibatnya, pertanyaan ini tidak mengembalikan baris.

Melumpuhkan ANSI_NULLS mengubah tingkah laku ini. Tanpa ANSI_NULLS, 3 <> NULL mungkin bernilai benar, menyebabkan pertanyaan mengembalikan hasil. Ini menyerlahkan ketidakkonsistenan yang diperkenalkan oleh nilai NULL.

Kesimpulan:

Apabila menggunakan NOT IN, sentiasa ambil kira potensi NULL nilai dalam senarai. Kehadiran NULL memberi kesan ketara kepada hasil pertanyaan disebabkan oleh logik tiga nilai SQL (BENAR, SALAH, TIDAK DIKETAHUI). Adalah disyorkan untuk mengelakkan NOT IN dengan nilai NULL dan menggunakan pendekatan alternatif seperti NOT EXISTS untuk hasil yang lebih boleh diramal dan boleh dipercayai.

Atas ialah kandungan terperinci Bagaimanakah Nilai NULL Mempengaruhi Keputusan NOT IN Klausa 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