GROUP_CONCAT ステートメントでの値の順序付け
MySQL では、GROUP_CONCAT は特定のグループに基づいて 1 つのカラムの値を結合します。ただし、連結された値の順序は、通常、グループ化が行われる順序によって決まります。これらの値の並べ替えを制御するには、特定の構文が必要です。
GROUP_CONCAT ステートメントで連結された値を並べ替えるには、ネストされたクエリ内で ORDER BY 句を使用します。たとえば、次のクエリを考えてみます。
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
連結されたコンピテンス値を昇順で並べ替えるには、クエリを次のように変更します。
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 ASC) SEPARATOR "<br />\n") AS competences
同様に、値を降順に並べ替えるには、ASC:
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 DESC) SEPARATOR "<br />\n") AS competences
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3