【问题标题】:mySQL CASE THEN <something> ELSE <dont select>mySQL CASE THEN <something> ELSE <dont select>
【发布时间】:2011-06-05 00:03:50
【问题描述】:

我在 WHERE 子句中使用 mySQL 查询和 CASE 语句。

SELECT * from places WHERE 
                        CASE WHEN
                            column1 > column2
                        THEN 
                            id > 100
                        WHEN 
                            column1 < column2
                        THEN
                            id < 100
                         ELSE
                            <DONT SELECT THE ROW>
                         END

如果 column1 = column2(意味着我们在 ELSE 分支中),我不确定如何不选择任何行。我应该如何做到这一点?

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:
    SELECT * from places WHERE 
                        CASE WHEN
                            column1 > column2
                        THEN 
                            id > 100
                        WHEN 
                            column1 < column2
                        THEN
                            id < 100
                        END
    AND column1 != column2
    

    【讨论】:

      【解决方案2】:

      尝试添加不可能的条件ELSE 0 = 1。我不确定 100% 的另一个选项是不要在 ELSE 中添加任何内容 - 它必须具有默认值 ELSE NULL

      【讨论】:

        猜你喜欢
        • 2011-06-07
        • 1970-01-01
        • 1970-01-01
        • 2020-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多