2016-09-29 53 views
1

所以,我有如下表:MySQL查詢兩個字段一起在結果

retailer register store 
1   104   b 
1   101   a 
2   104   b 
2   101   a 
3   104   b 
3   101   a 

我找表中查詢得到的結果,看起來像:

retailer register store 
1 _ 101, 104 _ a, b 
2 _ 101, 104 _ a, b 
3 _ 101, 104 _ a, b 
+1

是你的逗號旨在代表一個列分隔符預期的結果,或者是它的字面所有結果逗號的字符串分開嗎? – Siyual

回答

2

您可以使用GROUP_CONCAT和group by

select 
    retailer 
, group_concat(register ORDER BY registed ASC SEPARATOR ', ') 
, group_concat(store ORDER BY store ASC SEPARATOR ', ') 
from my_table 
group by retailer 

,如果你需要的saparator你應該使用CONCAT

select 
     concat (retailer 
     , '_' 
     , group_concat(register ORDER BY registed ASC SEPARATOR ', ') 
     , '_' 
     , group_concat(store ORDER BY store ASC SEPARATOR ', ')) 
from my_table 
group by retailer 
+0

你的結果將會不同 –

+0

@RaminDarvishov。解釋更好 – scaisEdge

+0

你的結果將是不同的順序和沒有分隔符 –

1

您可以通過和GROUP_CONCAT與ORDER使用GROUP BY和分隔符

select retailer, 
GROUP_CONCAT(register ORDER BY register DESC SEPARATOR ', ') AS register, 
GROUP_CONCAT(store ORDER BY store DESC SEPARATOR ', ') AS store 
from my_table 
GROUP BY retailer 

retailer register store 
    1  101, 104 a, b 
    2  101, 104 a, b 
    3  101, 104 a, b 
相關問題