Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择一些列并在MySQL中显示列名_Mysql_Sql_Select - Fatal编程技术网

选择一些列并在MySQL中显示列名

选择一些列并在MySQL中显示列名,mysql,sql,select,Mysql,Sql,Select,我有下表daysTurns: 我怎样才能得到这样的结果 date turn mail 2017-04-03 turn11 luis@geen.com 2017-04-03 turn12 luis@geen.com 2017-04-03 turn13 luis@geen.com 2017-04-03 turn21 luis@geen.com 2017-04-03 turn21 luis@geen.com 2017-04-03 tur

我有下表daysTurns:

我怎样才能得到这样的结果

date        turn      mail
2017-04-03  turn11    luis@geen.com
2017-04-03  turn12    luis@geen.com
2017-04-03  turn13    luis@geen.com
2017-04-03  turn21    luis@geen.com
2017-04-03  turn21    luis@geen.com
2017-04-03  turn21    luis@geen.com
2017-04-04  turn11    luis@geen.com
2017-04-04  turn12    luis@geen.com
2017-04-04  turn13    luis@geen.com
2017-04-04  turn21    luis@geen.com
2017-04-04  turn22    luis@geen.com
2017-04-04  turn23    luis@geen.com
我想我需要一个像SELECT*FROM daysTurns这样的查询

这是预期的产出:


如果只有6列看起来像“turn\uuuuuu”,请尝试执行以下操作:

SELECT date, 'turn11' as turn, mail FROM daysTurns
WHERE turn11 is not null and turn11 <> ''
UNION ALL
SELECT date, 'turn12' as turn, mail FROM daysTurns
WHERE turn12 is not null and turn12 <> ''
UNION ALL
SELECT date, 'turn13' as turn, mail FROM daysTurns
WHERE turn13 is not null and turn13 <> ''
UNION ALL
SELECT date, 'turn21' as turn, mail FROM daysTurns
WHERE turn21 is not null and turn21 <> ''
UNION ALL
SELECT date, 'turn22' as turn, mail FROM daysTurns
WHERE turn22 is not null and turn22 <> ''
UNION ALL
SELECT date, 'turn23' as turn, mail FROM daysTurns
WHERE turn23 is not null and turn23 <> ''
代表OP发布

解决方案查询:

SET @mail = 'the_mail_that_i_need';

SELECT date, 'turn11' as turn, turn11 as mail FROM daysTurns
WHERE turn11 = @mail 
UNION ALL
SELECT date, 'turn12' as turn, turn12 as mail FROM daysTurns
WHERE turn12 = @mail
UNION ALL
SELECT date, 'turn13' as turn, turn13 as mail FROM daysTurns
WHERE turn13 = @mail
UNION ALL
SELECT date, 'turn21' as turn, turn21 as mail FROM daysTurns
WHERE turn21 = @mail
UNION ALL
SELECT date, 'turn22' as turn, turn22 as mail FROM daysTurns
WHERE turn22 = @mail
UNION ALL
SELECT date, 'turn23' as turn, turn23 as mail FROM daysTurns
WHERE turn23 = @mail
ORDER BY date ASC

你能用一句话解释一下你想选什么吗?还有你认为可能需要涉及的表的结构。你有多少个像“turn%”这样的字段?这是和这6列的副本谢谢!根据您的回答,我可以建立正确的答案: