ホームページ >データベース >mysql チュートリアル >MySQL で文字列をリストに集約する方法 (Oracle の LISTAGG と同様)?

MySQL で文字列をリストに集約する方法 (Oracle の LISTAGG と同様)?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-04 14:15:16482ブラウズ

How to Aggregate Strings into a List in MySQL (Similar to Oracle's LISTAGG)?

MySQL の集計関数: 値をリストに集計します (次の LISTAGG に似ています) Oracle)

クエリ:

I need function, that returns list of strings.

I have data in table like this:

Id    MyString
------------------------
 1    First
 2    Second
 3    Third
 4    Fourth

I need function like this (something like this works in oracle):

select LISTAGG(MyString, ', ') as myList where id < 4

That returns something like this:

myList
------------------------
First, Second, Third

回答:

MySQL は、次の GROUP_CONCAT() 関数を提供します。この目的。値をカンマ区切りのリストに集計します。

GROUP_CONCAT() を使用したクエリ:

select group_concat(MyString separator ', ') as myList 
from table
where id < 4

このクエリは、カンマで区切られた文字列のリストを返します。 ID が 4 未満のすべての行。「myList」列には、集計されたデータが含まれます。 result.

注: GROUP_CONCAT() 関数を使用すると、必要に応じて複数の列によるグループ化が可能になります。例:

select group_concat(MyString separator ', ') as myList 
from table
where id < 4
group by another_column

このクエリは、another_column 列ごとに結果をグループ化し、グループごとに文字列のリストを作成します。

以上がMySQL で文字列をリストに集約する方法 (Oracle の LISTAGG と同様)?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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