温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Can I concatenate multiple MySQL Column into One Column?
mysql

其他 - 我可以将多个MySQL列连接成一个列吗?

发布于 2020-03-30 21:27:05

美好的一天,我想问问这是否可能在MySQL中

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

输出量

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

我需要的输出

[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

查看更多

提问者
Rayner Pangan
被浏览
21
tcadidot0 2020-01-31 15:14

您可以执行以下操作:

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

这是一个小提琴:https : //www.db-fiddle.com/f/dvg6x1vBg6H5bDNp9VZxQa/4

我增加了3列id AS id1rownum以及colname前两个附加列用于ORDER BY外部查询。如果您不想看到其他列,只需SELECT Data_value FROM ...在外部查询中键入即可