2011-09-20 77 views
0

我有這樣條件字段選擇

id | bookDate | regisDate | payDate | status 
1 | 2001-12-31 | 2002-12-31 | 2003-12-31 | 1 
2 | 2001-12-31 | 2002-12-31 | 2003-12-31 | 2 
3 | 2001-12-31 | 2002-12-31 | 2003-12-31 | 3 

數據,我想結果是這樣

id | date | status 
x | x | x 

通知date字段是從3還原成1場。而條件是這樣的。如果狀態是1然後採取datebookDate,如果2regisDate取,如果3取從payDate

例如用於與ID 1數據,則查詢的結果將是這樣

id | date  | status 
1 | 2001-12-31 | 1 

它在MySQL查詢中可以這樣做嗎?

回答

3

您在MySQL中有case語句。

SELECT id, 
CASE status 
    WHEN 1 THEN bookDate 
    WHEN 2 THEN regisDate 
    WHEN 3 THEN payDate 
END 
AS date, 
status 
FROM table 
+0

謝謝馬庫斯。這對我來說真的很重要。非常感謝。 – GusDeCooL

2
SELECT id, 
    CASE status 
    WHEN 1 THEN bookDate 
    WHEN 2 THEN regisDate 
    WHEN 3 THEN payDate END as Date, 
    Status 
FROM YourTable;