Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengalih Keluar Pendua daripada Fungsi GROUP_CONCAT() MySQL?

Bagaimanakah Saya Boleh Mengalih Keluar Pendua daripada Fungsi GROUP_CONCAT() MySQL?

Susan Sarandon
Susan Sarandonasal
2024-12-26 13:29:09822semak imbas

How Can I Remove Duplicates from MySQL's GROUP_CONCAT() Function?

Hapuskan Pendua daripada GROUP_CONCAT() menggunakan DISTINCT

Dalam MySQL, GROUP_CONCAT() ialah fungsi yang berguna untuk mengagregatkan nilai daripada berbilang baris ke dalam rentetan dipisahkan koma tunggal. Walau bagaimanapun, apabila bekerja dengan nilai bukan unik, pendua boleh muncul dalam rentetan yang terhasil. Untuk menangani perkara ini, atribut DISTINCT boleh digunakan dalam fungsi GROUP_CONCAT().

Masalah:

Pertimbangkan jadual data sampel berikut dengan lajur "kategori":

categories
test1 test2 test3
test4
test1 test3
test1 test3

Apabila melakukan GROUP_CONCAT() berikut pertanyaan:

SELECT GROUP_CONCAT(categories SEPARATOR ' ') FROM table

Hasilnya ialah:

test1 test2 test3 test4 test1 test3

Walau bagaimanapun, hasil yang diinginkan ialah:

test1 test2 test3 test4

Penyelesaian:

Untuk menghapuskan nilai pendua daripada hasil GROUP_CONCAT(), gunakan atribut DISTINCT sebagai berikut:

SELECT GROUP_CONCAT(DISTINCT categories ORDER BY categories ASC SEPARATOR ' ') FROM table

Atribut DISTINCT memastikan bahawa hanya nilai unik disertakan dalam rentetan bercantum. Klausa ORDER BY digunakan untuk mengisih nilai dalam tertib menaik. Hasilnya ialah rentetan dipisahkan koma yang mengandungi hanya kategori yang berbeza:

test1 test2 test3 test4

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Pendua daripada Fungsi GROUP_CONCAT() MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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