Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengisih Nilai Dalam Rentetan GROUP_CONCAT dalam MySQL?

Bagaimana untuk Mengisih Nilai Dalam Rentetan GROUP_CONCAT dalam MySQL?

Barbara Streisand
Barbara Streisandasal
2024-11-16 10:27:03843semak imbas

How to Sort Values Within a GROUP_CONCAT String in MySQL?

Mengisih Nilai GROUP_CONCAT dalam MySQL

Dalam bidang MySQL, anda mungkin menghadapi keperluan untuk memanipulasi data yang dikembalikan daripada pernyataan GROUP_CONCAT. Satu keperluan biasa ialah mengisih nilai dalam rentetan bercantum.

Untuk mencapai ini, anda boleh memanfaatkan permata tersembunyi fungsi GROUP_CONCAT: klausa ORDER BY. Dengan menambahkan klausa ORDER BY pada subquery dalam GROUP_CONCAT, anda boleh mengisih nilai sebelum ia digabungkan.

Contohnya, 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 baris dengan nilai gabungan lajur parent.name, diisih dalam tertib menaik berdasarkan parent.lft lajur.

Walau bagaimanapun, jika anda inginkan susunan tertentu, seperti tertib menurun, cuma laraskan klausa ORDER BY:

... ORDER BY parent.lft DESC

Perlu diperhatikan bahawa klausa ORDER BY dalam GROUP_CONCAT hanyalah terpakai kepada subkueri paling dalam. Jika anda mempunyai subkueri berbilang lapisan, pertanyaan luar tidak akan dipengaruhi oleh klausa ORDER BY.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Nilai Dalam Rentetan GROUP_CONCAT dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn