【问题标题】:Mysql select query conditionMysql选择查询条件
【发布时间】:2011-08-10 11:41:09
【问题描述】:

我在 mysql 数据库中有两个数据库列,A 和 B。 在一个选择查询中,我想实现这个逻辑:

选择 A 为“X”的行。 如果 A 未设置在一行中,则仅当列 B='Y' 时才检查并选择该行。

所以可以说 B 列是 A 列的后备列。

我如何构造一个将“X”和“Y”作为 WHERE 子句输入的 SELECT 查询?

【问题讨论】:

    标签: mysql select conditional-statements where


    【解决方案1】:

    我认为这应该可行:

    SELECT * FROM table
    WHERE (A='X') OR ((A IS NULL) AND (B='Y'))
    

    【讨论】:

      【解决方案2】:

      使用布尔逻辑:

      SELECT *
      FROM table
      WHERE A = 'X' OR (A IS NULL AND B = 'Y')
      

      【讨论】:

      • 我对此解决方案有疑问。此查询将返回 A 和 B(因为 'SELECT *')并且其中一个可能为空。如果 A 为空,有没有办法不返回?
      • @frabala 如果您有任何问题,您应该使用顶部的“”链接提出问题,它会比对去年的旧答案的评论得到更多的回复 :)
      【解决方案3】:

      SELECT * FROM table WHERE A='X' OR (A IS NULL AND B='Y')

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-24
        • 1970-01-01
        • 1970-01-01
        • 2016-03-21
        • 1970-01-01
        • 2012-08-12
        • 1970-01-01
        • 2016-11-16
        相关资源
        最近更新 更多