2014-01-17 53 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。它刪除重複項。

相關問題