MariaDBでは、GROUP_CONCAT()
を使用できます クエリ結果をコンマ区切りのリストとして返す関数。つまり、特定の列について、すべての行を、その列を構成する値のコンマ区切りのリストを含む単一の行に変換できます。各行はリスト内の個別の項目です。
例
次のクエリを実行するとします。
SELECT meal
FROM guest_meals;
結果:
+---------+ | meal | +---------+ | Salad | | Fish | | Burrito | | Pasta | | Salad | | Salad | +---------+ 6 rows in set (0.001 sec)
そのクエリの結果は6行でした。
これらの行は、次のように1つのコンマ区切り行に変換できます。
SELECT GROUP_CONCAT(meal)
FROM guest_meals;
結果:
+--------------------------------------+ | GROUP_CONCAT(meal) | +--------------------------------------+ | Salad,Fish,Burrito,Pasta,Salad,Salad | +--------------------------------------+ 1 row in set (0.003 sec)
区切り文字を変更する
SEPARATOR
を前に付けて関数に渡すことで、独自のセパレーターを指定できます。 キーワード:
SELECT GROUP_CONCAT(meal SEPARATOR ' + ')
FROM guest_meals;
結果:
Salad + Fish + Burrito + Pasta + Salad + Salad
結果の注文
ORDER BY
を使用して結果を並べ替えることができます 関数の句:
SELECT GROUP_CONCAT(meal ORDER BY meal ASC)
FROM guest_meals;
結果:
Burrito,Fish,Pasta,Salad,Salad,Salad
一意の値のみを返す
DISTINCT
を使用できます 一意の値のみを返す句:
SELECT GROUP_CONCAT(DISTINCT meal ORDER BY meal ASC)
FROM guest_meals;
結果:
Burrito,Fish,Pasta,Salad
結果を制限する
LIMIT
を使用できます リスト内のアイテムの数を制限する句:
SELECT GROUP_CONCAT(DISTINCT meal ORDER BY meal ASC LIMIT 3)
FROM guest_meals;
結果:
Burrito,Fish,Pasta
グループ化されたクエリ
GROUP_CONCAT()
この関数は、グループ化されたクエリを実行するときに便利です。 MariaDBのGROUP_CONCAT()
を参照してください 例として。