2014-01-17 57 views
1

假设我有一张设计糟糕的桌子,甚至没有。 它看起来像这样:如何从行中选择几个单元格并在列中显示它们?

+-----+---------+---------+---------+---------- 
| id | value 1 | value 2 | value 3 | others... 
+-----+---------+---------+---------+---------- 
| 1 | 1v1  | 1v2  | 1v3  | sth 
+-----+---------+---------+---------+---------- 
| 2 | 2v1  | 2v2  | 2v3  | sth 
+-----+---------+---------+---------+---------- 

现在我想从该表中选择值1,值2,值3,并显示在列。 这是预期的输出:

+----+--------+ 
| id | val | 
+----+--------+ 
| 1 | 1v1 | 
+----+--------+ 
| 1 | 1v2 | 
+----+--------+ 
| 1 | 1v3 | 
+----+--------+ 
| 2 | 2v1 | 
+----+--------+ 
| 2 | 2v2 | 
+----+--------+ 
| 2 | 2v3 | 
+----+--------+ 

任何想法怎么办呢?

+0

你是否试图纯粹在MySQL中做到这一点?或者在一个编码项目中? –

+0

纯SQL。下面的答案对我来说是完美的。 – Alex

回答

4
SELECT id, `value 1` AS val 
FROM your_table 
UNION ALL 
SELECT id, `value 2` AS val 
FROM your_table 
UNION ALL 
... 

等所有列必要的。您可能需要使用UNION而不是UNION ALL。它删除重复项。

相关问题