group_concat
sep
引数を使用して、グループ内の非NULL値を1つの文字列に連結します。指定しない場合、デフォルトで ,
となります。この関数は、複数の行の列の値を1つの文字列に連結するために使用できます。
group_concat は、3.0.6以降の3.0バージョンおよび3.1.3以降の3.1バージョンで DISTINCT と ORDER BY をサポートしています。
Syntax
VARCHAR GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR sep])
Parameters
expr
: 連結する値で、NULL値は無視されます。VARCHAR に評価される必要があります。出力文字列から重複する値を排除するには、オプションでDISTINCT
を指定できます。複数のexpr
を直接連結したい場合は、concat または concat_ws を使用してフォーマットを指定してください。- ORDER BY の項目は、符号なし整数(1から始まる)、列名、または通常の式であることができます。結果はデフォルトで昇順にソートされます。ASC キーワードを明示的に指定することもできます。降順にソートしたい場合は、ソートする列名に DESC キーワードを追加してください。
sep
: 異なる行の非NULL値を連結するために使用されるオプションのセパレータです。指定しない場合、デフォルトで,
(カンマ)が使用されます。セパレータを排除するには、空の文字列''
を指定してください。
NOTE
v3.0.6 および v3.1.3 以降では、セパレータを指定する際の動作が変更されました。セパレータを宣言するには
SEPARATOR
を使用する必要があります。例えば、select group_concat(name SEPARATOR '-') as res from ss;
のようにします。