メインコンテンツまでスキップ
メインコンテンツまでスキップ

groupConcat

文字列のグループから連結された文字列を計算し、オプションで区切り文字で区切ることができ、オプションで最大要素数によって制限することができます。

構文

groupConcat[(delimiter [, limit])](expression);

エイリアス: group_concat

引数

  • expression — 連結する文字列を出力する式またはカラム名。
  • delimiter — 連結された値を区切るために使用される文字列。このパラメータはオプションで、指定されていない場合は空の文字列またはパラメータからの区切り文字がデフォルトとなります。

パラメータ

  • delimiter — 連結された値を区切るために使用される文字列。このパラメータはオプションで、指定されていない場合は空の文字列がデフォルトとなります。
  • limit — 連結する最大要素数を指定する正の整数。要素がそれ以上存在する場合は、余分な要素は無視されます。このパラメータはオプションです。
注記

区切り文字が指定されている場合、制限なしでは最初のパラメータである必要があります。区切り文字と制限が両方指定されている場合は、区切り文字が制限の前に来る必要があります。

また、異なる区切り文字がパラメータと引数として指定された場合、引数からの区切り文字のみが使用されます。

返される値

  • カラムまたは式の連結された値から構成されるstringを返します。グループに要素がない場合やnull要素のみが含まれている場合、かつ関数がnull値のみの処理を指定していない場合、結果はnull値を持つnullableな文字列になります。

入力テーブル:

┌─id─┬─name─┐
│  1 │ John │
│  2 │ Jane │
│  3 │ Bob  │
└────┴──────┘
  1. 区切り文字なしの基本的な使用法:

クエリ:

SELECT groupConcat(Name) FROM Employees;

結果:

JohnJaneBob

これはすべての名前を区切りなしの連続した文字列に連結します。

  1. カンマを区切り文字として使用:

クエリ:

SELECT groupConcat(', ')(Name)  FROM Employees;

または

SELECT groupConcat(Name, ', ')  FROM Employees;

結果:

John, Jane, Bob

この出力は、カンマとその後にスペースで区切られた名前を示します。

  1. 連結される要素の数を制限

クエリ:

SELECT groupConcat(', ', 2)(Name) FROM Employees;

結果:

John, Jane

このクエリは、テーブルに他の名前があっても最初の2つの名前に出力を制限します。