Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Isih Nilai dalam Penyata GROUP_CONCAT?

Bagaimana untuk Isih Nilai dalam Penyata GROUP_CONCAT?

Linda Hamilton
Linda Hamiltonasal
2024-11-19 19:02:02563semak imbas

How to Sort Values in GROUP_CONCAT Statements?

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:

  • : Nilai yang akan digabungkan
  • : Lajur atau ungkapan yang digunakan untuk mengisih
  • : Arah pengisihan (ASC atau DESC)
  • : Pembatas yang digunakan untuk memisahkan nilai yang digabungkan

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 " &raquo; ") 
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!

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