Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
188 views
in Technique[技术] by (71.8m points)

mysql - How To use multiple columns

id  day  line    color   
1   1    1       white          
2   1    2       orange    
3   2    1       White       
4   2    2       Orange     
5   2    3       White  

I'm trying to get a result :

day line  color         
1   1,2    white,orange 
2   1,2,3    white,orange,white 

SELECT day
     , line
     , color  from name_table 
  GROUP 
    BY day 
 ORDER 
    BY day ASC

does not work for me, any help

question from:https://stackoverflow.com/questions/65853085/how-to-use-multiple-columns

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use GROUP_CONCAT for that purpose

CREATE TABLE name_table 
    (`id` int, `day` int, `line` int, `color` varchar(6))
;
    
INSERT INTO name_table 
    (`id`, `day`, `line`, `color`)
VALUES
    (1, 1, 1, 'white'),
    (2, 1, 2, 'orange'),
    (3, 2, 1, 'White'),
    (4, 2, 2, 'Orange'),
    (5, 2, 3, 'White')
;
SELECT day
     , GROUP_CONCAT(line ORDER BY  line ASC) kine
     , GROUP_CONCAT(color ORDER BY  line ASC) color  
  FROM name_table 
  GROUP 
    BY day 
 ORDER 
    BY day ASC
day | kine  | color             
--: | :---- | :-----------------
  1 | 1,2   | white,orange      
  2 | 1,2,3 | White,Orange,White

db<>fiddle here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...