2013-10-24 148 views
42

我想在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" 

回答

94

檢查這

SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 group by parent_id; 
8

如果您有多行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; 
+0

去GROUP_CONCAT :) –

4

試試這個

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" 
5

使用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 
0

一組值之間的默認分隔符是逗號(,)。要指定任何其他分隔符,請使用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

0

首先到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;