【问题标题】:MYSQL - How to check if a column has value or is it null and another column has value like 10MYSQL - 如何检查一列是否有值或者它是否为空而另一列的值如 10
【发布时间】:2019-10-31 13:36:36
【问题描述】:

假设我有一个包含 3 列 id、用户和状态的表。 我需要找到状态为 1 或 null 且 user = 'someName'

的行

我正在寻找这样的条件: if (user == 'name' && status == 1 || status == null)

我如何在 mysql 中做到这一点

【问题讨论】:

标签: mysql sql database where-clause


【解决方案1】:

只是:

WHERE user = 'someName' AND (status = 1 OR status IS NULL)

这可以简化为更短(但可能效率更低)

WHERE user = 'someName' AND IFNULL(status, 1) = 1

请注意,这与您的伪代码并不完全相同:

user == 'name' && status == 1 || status == null

相当于:

( user == 'name' && status == 1 ) || status == null

翻译为:

WHERE (user = 'someName' AND status = 1) OR status IS NULL

但是,我对您的问题的理解是,您是指上述第一个条件。

【讨论】:

    【解决方案2】:

    你可以试试下面 -

    SELECT * FROM TAB
    WHERE user = 'Some Name'
    AND (status = 1 OR status IS NULL)
    

    【讨论】:

    • user == 'name' && status == 1 || status == nulluser = 'name' AND (status = 1 OR status IS NULL) 不同。 AND 的优先级高于 OR
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    相关资源
    最近更新 更多