Kita tahu bahawa fungsi SUM() akan mengembalikan NULL jika tiada baris yang sepadan, tetapi kadangkala kita mahu ia mengembalikan sifar dan bukannya NULL. Untuk melakukan ini, kita boleh menggunakan fungsi MySQL COALESCE(), yang menerima dua parameter dan mengembalikan parameter kedua jika parameter pertama adalah NULL, jika tidak ia mengembalikan parameter pertama. Untuk memahami konsep di atas, pertimbangkan jadual "employee_tbl" yang mempunyai rekod berikut -
mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | John | 2007-01-24 | 250 | | 2 | Ram | 2007-05-27 | 220 | | 3 | Jack | 2007-05-06 | 170 | | 3 | Jack | 2007-04-06 | 100 | | 4 | Jill | 2007-04-06 | 220 | | 5 | Zara | 2007-06-06 | 300 | | 5 | Zara | 2007-02-06 | 350 | +------+------+------------+--------------------+ 7 rows in set (0.00 sec)
Sekarang, apabila kita menggunakan fungsi COALESCE bersama-sama dengan fungsi SUM() untuk mencari jumlah halaman yang dimasukkan oleh "Mohan", MySQL Fungsi SUM() mengembalikan 0, dan nama "Mohan" tiada dalam lajur "Nama" −
mysql> SELECT COALESCE(SUM(daily_typing_pages),0)AS ‘SUM(daily_typing_pages)’FROM employee_tbl WHERE Name = ‘Mohan’; +-------------------------+ | SUM(daily_typing_pages) | +-------------------------+ | 0 | +-------------------------+ 1 row in set (0.00 sec)
Atas ialah kandungan terperinci Bagaimanakah saya boleh menyesuaikan output fungsi MySQL SUM() menjadi 0 dan bukannya NULL apabila tiada baris yang sepadan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!