Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menghimpunkan Data SQL Semasa Mengendalikan Nilai NULL dalam Klausa `GROUP BY`?
Mengumpulkan Data dengan Nilai NULL dalam SQL
Menghimpunkan data menggunakan fungsi GROUP BY ialah teknik yang berkuasa untuk meringkaskan dan mendapatkan semula data. Walau bagaimanapun, kadangkala adalah wajar untuk mengumpulkan data sambil mengabaikan nilai NULL. Ini boleh dicapai melalui manipulasi bijak klausa GROUP BY.
Dalam pertanyaan yang diberikan, GROUP BY digunakan untuk mengumpulkan baris mengikut medan ancestor. Walau bagaimanapun, apabila nenek moyang adalah NULL untuk berbilang baris, mereka dikumpulkan bersama, menyebabkan hanya satu baris dikembalikan. Untuk mengatasi isu ini, kami boleh menggunakan helah yang melibatkan fungsi IFNULL.
Kami boleh mengubah suai pertanyaan seperti berikut:
SELECT `table1`.*, IFNULL(ancestor,UUID()) as unq_ancestor GROUP_CONCAT(id SEPARATOR ',') AS `children_ids` FROM `table1` WHERE (enabled = 1) GROUP BY unq_ancestor
Dalam pertanyaan yang disemak ini, kami menggunakan IFNULL untuk menetapkan yang unik pengecam (UUID) kepada nilai NULL dalam medan ancestor. Ini mencipta lajur unik yang dipanggil unq_ancestor yang kemudiannya digunakan untuk mengumpulkan. Akibatnya, semua baris, termasuk baris yang mempunyai nilai nenek moyang NULL, akan dikumpulkan secara berasingan, membolehkan anda mendapatkan semula semua data yang dikehendaki.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghimpunkan Data SQL Semasa Mengendalikan Nilai NULL dalam Klausa `GROUP BY`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!