MySQL 列の値を全て区切り文字で抽出する

MySQL 列の値を全て区切り文字で抽出する

MySQLで、列の値を全て区切り文字で抽出する手順を記述してます。

環境

  • OS ubuntu21.10
  • MySQL Ver 8.0.27-0ubuntu0.21.10.1 for Linux on x86_64 ((Ubuntu))
  • MySQL Workbench 8.0.27

手順

列の値を全て区切り文字で抽出するには、「GROUP_CONCAT」を使用します。

GROUP_CONCAT(列名)

以下の「tbl1」というテーブルで実行してみます。

実行してみます。

SELECT GROUP_CONCAT(name) FROM tbl1;

実行結果を確認すると、カンマ区切りでデータが連結されていることが確認できます。

ORDER BY

ORDER BYすることも可能です。

SELECT 
GROUP_CONCAT(name ORDER BY name ASC) 
FROM tbl1;

実行結果

区切り文字を指定

「SEPARATOR」を使用すれば、区切り文字を変更することが可能です。

SELECT 
GROUP_CONCAT(name SEPARATOR ' ') 
FROM tbl1;

実行結果

重複削除

「DISTINCT」を使えば重複削除することもできます。

以下のデータで実行してみます。

実行してみます。

SELECT 
GROUP_CONCAT(DISTINCT name) 
FROM tbl1;

実行結果