我想在MySQL中將選定的值轉換爲逗號分隔的字符串。我最初的代碼如下:在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"
我想在MySQL中將選定的值轉換爲逗號分隔的字符串。我最初的代碼如下:在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;
使用group_concat
方法在MySQL
如果您有多行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;
去GROUP_CONCAT :) –
試試這個
SELECT CONCAT('"',GROUP_CONCAT(id),'"') FROM table_level
where parent_id=4 group by parent_id;
結果將是MySQL的的
"5,6,9,10,12,14,15,17,18,779"
使用group_concat()功能。
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
一組值之間的默認分隔符是逗號(,)。要指定任何其他分隔符,請使用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
首先到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;
它是否返回字符串? – Karunakar
@Karunakar,我在這裏弄到了「blob」。 – Pacerier