mySQL如果列包含特定数据,则显示该列,否则显示另一列

mySQL如果列包含特定数据,则显示该列,否则显示另一列,mysql,if-statement,Mysql,If Statement,我想创建一个基于数据的查询,它可以显示三列中的一列 我有三个日期列:Date1、Date2、Date3。如果Date1不等于'0000-00-00 00:00:00',并且小于“则不能像查询中那样使用ELSEIF。您正在查找案例: SELECT ID, Type, Status, (CASE WHEN Date1 <> '0000-00-00 00:00:00' AND Date1 < NOW() THEN Date1

我想创建一个基于数据的查询,它可以显示三列中的一列


我有三个日期列:Date1、Date2、Date3。如果Date1不等于'0000-00-00 00:00:00',并且小于“则不能像查询中那样使用ELSEIF。您正在查找
案例

SELECT ID, Type, Status,
    (CASE
        WHEN Date1 <> '0000-00-00 00:00:00' AND Date1 < NOW()
            THEN Date1
        WHEN Date2 <> '0000-00-00 00:00:00' AND Date2 < NOW()
            THEN Date2
        WHEN Date3 <> '0000-00-00 00:00:00' AND Date3 < NOW()
            THEN Date3
        ELSE NULL
    END) AS col1
FROM tableA
选择ID、类型、状态、,
(案例
当日期1'0000-00-00:00:00'和日期1
SELECT ID, Type, Status,
    (CASE
        WHEN Date1 <> '0000-00-00 00:00:00' AND Date1 < NOW()
            THEN Date1
        WHEN Date2 <> '0000-00-00 00:00:00' AND Date2 < NOW()
            THEN Date2
        WHEN Date3 <> '0000-00-00 00:00:00' AND Date3 < NOW()
            THEN Date3
        ELSE NULL
    END) AS col1
FROM tableA