Dalam pertanyaan pangkalan data, fungsi GROUP_CONCAT() sering digunakan untuk menggabungkan nilai daripada berbilang baris ke dalam satu rentetan . Walau bagaimanapun, kadangkala, rentetan yang terhasil mungkin mengandungi nilai pendua. Untuk menangani isu ini, MySQL menyediakan atribut DISTINCT dalam GROUP_CONCAT().
Pertimbangkan jadual berikut dengan lajur "kategori":
categories |
---|
test1 test2 test3 |
test4 |
test1 test3 |
test1 test3 |
Jika kita melaksanakan perkara berikut pertanyaan:
SELECT GROUP_CONCAT(categories SEPARATOR ' ') FROM table;
Kami akan mendapat hasil berikut:
test1 test2 test3 test4 test1 test3
Walau bagaimanapun, kami mungkin mahu mengecualikan nilai pendua, menghasilkan:
test1 test2 test3 test4
Untuk mencapai matlamat ini, kami hanya menambah atribut DISTINCT pada GROUP_CONCAT() fungsi:
SELECT GROUP_CONCAT(DISTINCT categories ORDER BY categories ASC SEPARATOR ' ') FROM table;
Dengan menyatakan DISTINCT, MySQL akan menghapuskan nilai pendua daripada rentetan bercantum, menghasilkan output yang diingini. Ambil perhatian bahawa klausa ORDER BY memastikan bahawa nilai yang digabungkan diisih dalam tertib menaik.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Pendua daripada Keputusan GROUP_CONCAT() MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!