Dalam MySQL, fungsi GROUP_CONCAT() menggabungkan nilai daripada jadual, dikumpulkan mengikut lajur tertentu. Walau bagaimanapun, tingkah laku lalai adalah untuk mengeluarkan nilai dalam susunan ia muncul dalam jadual. Ini mungkin tidak selalunya hasil yang diingini, terutamanya apabila anda memerlukan nilai yang digabungkan untuk diisih.
Untuk mengisih nilai dalam pernyataan GROUP_CONCAT, anda boleh menggunakan klausa ORDER BY dalam subquery. Sebagai contoh, pertimbangkan pertanyaan 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 ORDER BY parent.lft) SEPARATOR "<br /><\n") AS competences
Pertanyaan ini mengembalikan nilai gabungan nama kecekapan induk, diisih dalam tertib menaik.
Crafts » Joinery Administration » Organization
Dengan menyatakan klausa ORDER BY dalam subquery, kita boleh mengawal jujukan nilai yang digabungkan. Ini menyediakan cara yang fleksibel untuk membentangkan hasil dalam susunan tersuai, menjadikannya lebih mudah dibaca dan teratur.
Ingat, klausa ORDER BY harus diletakkan dalam kurungan subkueri yang mengikuti GROUP_CONCAT(). Ini membolehkan MySQL mengisih nilai sebelum menggabungkannya ke dalam satu rentetan.
Atas ialah kandungan terperinci Bagaimanakah cara mengisih nilai dalam pernyataan MySQL GROUP_CONCAT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!