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!