MySQL で GROUP_CONCAT 文字列内の値を並べ替えるにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-16 10:27:03
オリジナル
842 人が閲覧しました

How to Sort Values Within a GROUP_CONCAT String in MySQL?

MySQL での GROUP_CONCAT 値の並べ替え

MySQL の領域では、GROUP_CONCAT ステートメントから返されたデータを操作する必要が生じる場合があります。一般的な要件の 1 つは、連結された文字列内の値を並べ替えることです。

これを実現するには、GROUP_CONCAT 関数の隠れた宝石である ORDER BY 句を活用できます。 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
ログイン後にコピー

このクエリは行を返します。 parent.name 列の値を連結し、parent.lft に基づいて昇順で並べ替えます。

ただし、降順などの特定の順序が必要な場合は、単に ORDER BY 句を調整します。

... ORDER BY parent.lft DESC
ログイン後にコピー

GROUP_CONCAT の ORDER BY 句は、最も内側のサブクエリに適用されます。複数層のサブクエリがある場合、外側のクエリは ORDER BY 句の影響を受けません。

以上がMySQL で GROUP_CONCAT 文字列内の値を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート