Rumah > Artikel > pangkalan data > Mengapa Fungsi SUM MySQL Mengembalikan \'0\' Daripada NULL?
Mengambil semula '0' Daripada NULL Menggunakan Fungsi SUM MySQL
Apabila menggunakan fungsi SUM dalam MySQL untuk mengira jumlah nilai dalam lajur, fungsi mengembalikan NULL jika tiada nilai yang sepadan ditemui. Tingkah laku ini boleh menjadi masalah jika anda mahu fungsi mengembalikan 0 dalam kes sedemikian.
Untuk mengatasi isu ini, fungsi COALESCE boleh digunakan. COALESCE mengambil dua hujah: hujah pertama ialah ungkapan yang anda mahu dinilai dan hujah kedua ialah nilai yang anda mahu dikembalikan jika hujah pertama ialah NULL.
Dalam kes fungsi SUM, sintaks berikut boleh digunakan:
<code class="sql">SELECT COALESCE(SUM(Column_1), 0) FROM Table WHERE Column_2 = 'Test'</code>
Dalam contoh ini, ungkapan SUM(Lajur_1) dinilai. Jika tiada nilai yang sepadan untuk Column_2 ditemui, ungkapan akan mengembalikan NULL. Walau bagaimanapun, fungsi COALESCE kemudiannya akan mengembalikan nilai lalai yang ditentukan iaitu 0 dan bukannya NULL.
Pendekatan ini memastikan bahawa fungsi SUM akan sentiasa mengembalikan nilai angka, walaupun tiada nilai yang sepadan ditemui. Akibatnya, anda boleh mengelakkan potensi isu yang boleh timbul apabila berurusan dengan nilai NULL.
Maklumat Tambahan:
Untuk pemahaman yang lebih komprehensif tentang cara COALESCE berfungsi, pertimbangkan senario berikut: tiga jadual telah dibuat, setiap satu dengan jenis data yang berbeza.
Menjalankan pertanyaan berikut terhadap jadual ini menunjukkan kefungsian COALESCE:
<code class="sql">SELECT table_name, description, expected_sum, COALESCE(SUM(val), 0) AS actual_sum FROM ( SELECT 'foo' AS table_name, 'mixed null/non-null' AS description, 21 AS expected_sum, val FROM Table1 UNION ALL SELECT 'bar' AS table_name, 'all non-null' AS description, 21 AS expected_sum, val FROM Table2 UNION ALL SELECT 'baz' AS table_name, 'all null' AS description, 0 AS expected_sum, val FROM Table3 ) AS subquery GROUP BY table_name, description, expected_sum ORDER BY table_name, description;</code>
Hasil pertanyaan ini menunjukkan bahawa tanpa mengira jenis data, COALESCE memastikan fungsi SUM mengembalikan nilai angka, membolehkan pengendalian data yang lebih fleksibel dan boleh diramal dalam aplikasi MySQL anda.
Atas ialah kandungan terperinci Mengapa Fungsi SUM MySQL Mengembalikan \'0\' Daripada NULL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!