Mengoptimumkan Pendapatan Nilai Bukan Nol dalam MySQL
Memproses set data MySQL yang besar selalunya memerlukan kaedah yang cekap untuk menapis nilai nol. Walaupun gelung PHP mungkin kelihatan mudah, ia tidak mempunyai potensi pengoptimuman pertanyaan SQL langsung. Artikel ini menunjukkan teknik unggul untuk mendapatkan hanya nilai bukan nol daripada jadual MySQL anda.
Kaedah paling cekap memanfaatkan operator IS NOT NULL
dalam klausa WHERE
SQL anda. Pertanyaan berikut mendapatkan semula semua baris di mana lajur YourColumn
mengandungi nilai bukan nol:
<code class="language-sql">SELECT * FROM your_table WHERE YourColumn IS NOT NULL;</code>
Walaupun kurang standard, MySQL juga membenarkan menafikan pengendali kesamaan selamat-null. Walau bagaimanapun, IS NOT NULL
ialah pendekatan pilihan dan lebih mudah alih:
<code class="language-sql">SELECT * FROM your_table WHERE NOT (YourColumn <=> NULL);</code>
Untuk jadual yang tidak mematuhi bentuk normal pertama (1NF), di mana data tersebar merentas berbilang lajur, pertimbangkan alternatif ini. Pendekatan ini menggunakan UNION ALL
untuk menggabungkan hasil daripada lajur yang berbeza:
<code class="language-sql">SELECT val1 AS val FROM your_table WHERE val1 IS NOT NULL UNION ALL SELECT val2 FROM your_table WHERE val2 IS NOT NULL;</code>
Kaedah yang berpotensi lebih pantas, mengelakkan imbasan jadual berbilang, menggunakan pernyataan CASE
dan sambung sendiri (atau sambung silang, bergantung pada persediaan pangkalan data anda):
<code class="language-sql">SELECT CASE idx WHEN 1 THEN val1 WHEN 2 THEN val2 END AS val FROM your_table JOIN (SELECT 1 AS idx UNION ALL SELECT 2) t HAVING val IS NOT NULL;</code>
Pilih pendekatan yang paling sesuai dengan struktur jadual dan volum data anda untuk prestasi optimum. Manipulasi SQL langsung secara amnya mengatasi penyelesaian berasaskan PHP berulang untuk tugas ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nilai Bukan Null dengan Cekap daripada Jadual MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!