MySQLで選択した値をコンマ区切りの文字列に変換したい。私の初期コードは次のとおりです。
SELECT id FROM table_level where parent_id=4;
生産したもの:
'5'
'6'
'9'
'10'
'12'
'14'
'15'
'17'
'18'
'779'
希望する出力は次のようになります。
"5,6,9,10,12,14,15,17,18,779"
これをチェックして
SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 group by parent_id;
Parent_idに複数の行がある場合。
SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;
スペースをコンマに置き換えたい場合。
SELECT REPLACE(id,' ',',') FROM table_level where parent_id=4;
最初にset group_concat_max_len
を使用します。そうしないと、すべての結果が得られません。
SET GLOBAL group_concat_max_len = 999999;
SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 group by parent_id;
これを試して
SELECT CONCAT('"',GROUP_CONCAT(id),'"') FROM table_level
where parent_id=4 group by parent_id;
結果は
"5,6,9,10,12,14,15,17,18,779"
group_concat() mysqlの関数を使用します。
SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;
次のような連結された文字列を提供します:
5,6,9,10,12,14,15,17,18,779
Mysqlで group_concat
メソッドを使用します
グループ内の値間のデフォルトの区切り文字はコンマ(、)です。他のセパレータを指定するには、以下に示すようにSEPARATOR
を使用します。
SELECT GROUP_CONCAT(id SEPARATOR '|')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;
5 | 6 | 9 | 10 | 12 | 14 | 15 | 17 | 18 | 779
区切り文字を削除するには、SEPARATOR ''
を使用します
SELECT GROUP_CONCAT(id SEPARATOR '')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;
詳細情報を参照してください GROUP_CONCAT