Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menghimpunkan Data SQL Semasa Mengendalikan Nilai NULL dalam Klausa `GROUP BY`?

Bagaimanakah Saya Boleh Menghimpunkan Data SQL Semasa Mengendalikan Nilai NULL dalam Klausa `GROUP BY`?

Barbara Streisand
Lepaskan: 2025-01-04 02:26:40
asal
795 orang telah melayarinya

How Can I Group SQL Data While Handling NULL Values in the `GROUP BY` Clause?

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan