Rumah > Artikel > pangkalan data > Bagaimana untuk Isih Nilai dalam Penyata GROUP_CONCAT?
Isih Nilai dalam Penyata GROUP_CONCAT
Fungsi GROUP_CONCAT dalam MySQL membolehkan anda menggabungkan nilai yang dikumpulkan mengikut lajur tertentu. Walau bagaimanapun, secara lalai, nilai tidak diisih. Untuk menangani perkara ini, terdapat penyelesaian yang mudah.
Penyelesaian:
Sintaks GROUP_CONCAT dengan keupayaan pengisihan ialah:
GROUP_CONCAT(DISTINCT <expression> ORDER BY <order_expression> <direction> SEPARATOR <separator>)
Di mana:
Contoh:
Dalam pertanyaan yang disediakan, untuk mengisih nilai yang digabungkan mengikut abjad, anda boleh mengubah suainya seperti berikut:
GROUP_CONCAT((SELECT GROUP_CONCAT(parent.name SEPARATOR " » ") FROM test_competence AS node, test_competence AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt AND node.id = l.competence AND parent.id != 1 GROUP BY parent.id ORDER BY parent.name) SEPARATOR "<br />\n") AS competences
Dengan menyatakan ORDER BY parent.name dalam subquery, nilai akan diisih mengikut abjad sebelum disatukan. Ini akan mengeluarkan hasil yang diingini:
Pentadbiran » Organisasi
Kraftangan » Joinery
Atas ialah kandungan terperinci Bagaimana untuk Isih Nilai dalam Penyata GROUP_CONCAT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!