


Bagaimanakah Saya Memilih Baris dengan Nilai NULL dengan betul dalam MySQL?
Dec 01, 2024 am 11:04 AMMemahami Nilai Null dalam MySQL
Dalam MySQL, nilai null mewakili data yang hilang atau tidak diketahui. Tidak seperti nilai lain, null tidak boleh dibandingkan secara langsung atau diberikan kepada dirinya sendiri. Tingkah laku ini boleh membawa kepada hasil yang tidak dijangka apabila membuat pertanyaan untuk baris dengan lajur nol.
Isu: Memilih Baris dengan Lajur Null
Apabila cuba memilih baris dengan nilai nol untuk lajur tertentu, bentuk pertanyaan biasa kelihatan seperti ini:
SELECT pid FROM planets WHERE userid = NULL;
Walau bagaimanapun, pertanyaan ini mungkin mengembalikan set kosong walaupun jadual mengandungi baris dengan nol dalam lajur itu.
Penyelesaian: Menggunakan Perbandingan IS NULL
Untuk membuat pertanyaan dengan betul untuk nilai nol, gunakan operator IS NULL dan bukannya operator =. Pertanyaan yang betul hendaklah:
SELECT pid FROM planets WHERE userid IS NULL;
Pengendali ini secara eksplisit menyemak sama ada lajur itu adalah batal, mengelakkan komplikasi kesaksamaan nol.
Pertimbangan Tambahan
- Sensitiviti Kes: SQL ialah tidak peka huruf besar-kecil, jadi kedua-dua NULL dan null mewakili nilai nol.
- Pengoptimuman Indeks: Perbandingan nol tidak boleh mendapat manfaat daripada indeks, yang berpotensi memperlahankan pertanyaan untuk jadual besar.
- Enjin Storan Alternatif: InnoDB ialah pilihan yang lebih baik untuk jadual dengan nilai nol yang kerap seperti ia menyimpannya dengan lebih cekap daripada MyISAM.
Kesimpulan
Dengan menggunakan operator IS NULL dan mempertimbangkan enjin storan alternatif seperti InnoDB, anda boleh membuat pertanyaan dengan tepat untuk baris dengan nilai nol dalam MySQL. Walau bagaimanapun, ingat bahawa null kekal sebagai nilai istimewa dengan sifat unik yang boleh menjejaskan hasil pertanyaan.
Atas ialah kandungan terperinci Bagaimanakah Saya Memilih Baris dengan Nilai NULL dengan betul dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
