条件字段选择

时间:2011-09-20 17:22:29

标签: mysql

我有这样的数据

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,则从date获取bookDate,如果2regisDate获取,则3payDate获取

对于标识为1的数据的示例,则查询结果将类似于此

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

在MySQL查询中可以这样做吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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