Warm tip: This article is reproduced from stackoverflow.com, please click
mysql

Can I concatenate multiple MySQL Column into One Column?

发布于 2020-03-30 21:12:26

Good day i would like to ask if this is possible in MySQL

 SELECT id,label,name,age,sex FROM table LIMIT 3

Output

[row1] id,label,name,age,sex
[row2] id,label,name,age,sex
[row3] id,label,name,age,sex

My Output Needed

[row1] id
[row2] label
[row3] name
[row4] age
[row5] sex
[row6] id
[row7] label
[row8] name
[row9] age
[row10] sex
[row11] id
[row12] label
[row13] name
[row14] age
[row15] sex
Questioner
Rayner Pangan
Viewed
20
tcadidot0 2020-01-31 15:14

You can do something like this:

SELECT * FROM
((SELECT id AS id1, 1 AS rownum, 'id' AS colname, id AS Data_value FROM mytable LIMIT 3)
UNION ALL
(SELECT id, 2, 'label', label FROM mytable LIMIT 3)
UNION ALL
(SELECT id, 3, 'name', name FROM mytable LIMIT 3)
UNION ALL
(SELECT id, 4, 'age', age FROM mytable LIMIT 3)
UNION ALL
(SELECT id, 5, 'sex', sex FROM mytable LIMIT 3)) A 
 ORDER BY id1, rownum

Here's a fiddle: https://www.db-fiddle.com/f/dvg6x1vBg6H5bDNp9VZxQa/4

I've added 3 additional column id AS id1, rownum and colname. The first two additional column is used for ORDER BY at the outer query. If you don't want to see the additional column, you can just type SELECT Data_value FROM ... at the outer query.