ホームページ >データベース >mysql チュートリアル >SQL の GROUP_CONCAT 関数内で連結された値を順序付けるにはどうすればよいですか?

SQL の GROUP_CONCAT 関数内で連結された値を順序付けるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-02 03:47:10723ブラウズ

How Can I Order Concatenated Values within SQL's GROUP_CONCAT Function?

ORDER BY で強化された GROUP_CONCAT 関数

SQL では、GROUP_CONCAT 関数は、特定の行グループの列の値を連結するために使用されます。 。ただし、連結された値の順序は通常予測できません。

課題:

次の表を考えてみましょう:

client_id views percentage
1 6 20
1 4 55
1 9 56
1 2 67
1 7 80
1 5 66
1 3 33
1 8 34
1 1 52

GROUP_CONCAT 操作、データはconsolidated:

SELECT li.client_id, group_concat(li.views) AS views, group_concat(li.percentage) FROM li GROUP BY client_id;

Output:

client_id views percentage
6,4,9,2,7,5,3,8,1 20,55,56,67,80,66,33,34,52

ただし、ビューの順序は必須ではありません。連結された値を昇順に整理するには、ORDER BY 句を GROUP_CONCAT 関数内に組み込むことができます。

SELECT li.client_id, group_concat(li.views ORDER BY li.views) AS views, group_concat(li.percentage ORDER BY li.views) FROM li GROUP BY client_id

変更されたクエリは次の出力を返します。

client_id views percentage
1 1,2,3,4,5,6,7,8,9 52,67,33,55,66,20,80,34,56

この変更により、ビュー列が各クライアント グループ内で昇順に配置されていること。

以上がSQL の GROUP_CONCAT 関数内で連結された値を順序付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。