GROUP_CONCAT ステートメントでの値の並べ替え
MySQL の GROUP_CONCAT 関数を使用すると、指定したカラムでグループ化された値を連結できます。ただし、デフォルトでは、値は並べ替えられません。これに対処するための簡単な解決策があります。
解決策:
ソート機能を備えた GROUP_CONCAT の構文は:
GROUP_CONCAT(DISTINCT <expression> ORDER BY <order_expression> <direction> SEPARATOR <separator>)
ここで:
連結されたデータを区切るために使用される区切り文字値
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 "
\n") AS competences例:
提供されたクエリで、連結された値をアルファベット順に並べ替えるには、次のように変更できます:
サブクエリ内でORDER BYparent.nameを指定すると、値がアルファベット順にソートされます連結される前。これにより、目的の結果が出力されます:管理 » 組織
工芸 » 建具
以上がGROUP_CONCAT ステートメントの値を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。