Rumah > Soal Jawab > teks badan
P粉5205457532023-08-29 09:04:00
Lihat GROUP_CONCAT
jika versi MySQL anda (4.1) menyokongnya. Untuk maklumat lanjut, lihat DokumentasiButiran.
Ia kelihatan seperti:
SELECT GROUP_CONCAT(hobbies SEPARATOR ', ') FROM peoples_hobbies WHERE person_id = 5 GROUP BY 'all';
P粉0418569552023-08-29 00:29:10
Anda boleh menggunakan GROUP_CONCAT< /代码>
:
SELECT person_id, GROUP_CONCAT(hobbies SEPARATOR ', ') FROM peoples_hobbies GROUP BY person_id;
Seperti yang disebut oleh Ludwig dalam ulasannya, a> anda boleh menambah pengendali DISTINCT
DISTINCT untuk mengelakkan pertindihan:
SELECT person_id, GROUP_CONCAT(DISTINCT hobbies SEPARATOR ', ') FROM peoples_hobbies GROUP BY person_id;
Seperti yang Jan sebutkan dalam komen mereka, a> anda juga boleh mengisih nilai sebelum meletup menggunakan ORDER BY
PESANAN OLEH:
SELECT person_id, GROUP_CONCAT(hobbies ORDER BY hobbies ASC SEPARATOR ', ') FROM peoples_hobbies GROUP BY person_id;
Seperti yang Dag nyatakan dalam ulasannya, keputusan mempunyai had 1024 bait. Untuk menyelesaikan isu ini, jalankan pertanyaan ini sebelum:
SET group_concat_max_len = 2048;
Sudah tentu, anda boleh menukar 2048
2048 jika anda mahu. Kira dan tetapkan nilai:
SET group_concat_max_len = CAST( (SELECT SUM(LENGTH(hobbies)) + COUNT(*) * LENGTH(', ') FROM peoples_hobbies GROUP BY person_id) AS UNSIGNED);