【问题标题】:mysql select if andmysql 选择如果和
【发布时间】:2011-05-27 02:21:36
【问题描述】:

我正在此表上构建查询

my_table
field1 | field2
1      | y
2      | y
3      | y
4      | n
1      | n
2      | n
3      | y
4      | y

我正在寻找一个规则(可能是 IF)来选择除 field1=1 AND field2=y 之外的所有记录

这条记录不会被选中:

field1 | field2
1      | y

虽然没关系

field1 | field2
1      | N

编辑:

我添加了以下详细信息: 查询较长:

SELECT * FROM my_table WHERE time>'time1' AND time

在这个查询中,我必须附加一个过滤器: if field2=Y 排除 field1=1 的记录

【问题讨论】:

    标签: mysql sql conditional


    【解决方案1】:

    怎么样:

    SELECT * FROM my_table WHERE field1 <> 1 OR field2 <> 'y'
    

    【讨论】:

    • 如果我以前有很长的地方和规则怎么办?
    • 我知道不是操作,但你能告诉我这个案例的查询吗?
    • 您可以将这部分包装成一个长 WHERE 子句,例如:WHERE blah blah blah AND (field1 1 OR field2 'y') AND blah blah blah...
    【解决方案2】:

    关于:

    在这个查询中我必须附加一个 过滤器:如果 field2=Y 排除记录 其中field1=1

    SELECT *
    FROM my_table
    WHERE time > 'time1'
    AND   time < 'time2'
    AND   admin_area = 0
    AND ( (
        field2 = 'Y' AND field1 <> 1
    ) OR (
        field2 IS NULL OR field2 <> 'Y'
    ) )
    

    【讨论】:

      【解决方案3】:

      这里是The MySQL SELECT syntax reference. 您还可以使用 != 或 进行不等式测试。

      【讨论】:

      • SELECT * FROM my_table WHERE (field1, field2) &lt;&gt; (1, 'y');
      猜你喜欢
      • 2015-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-02-15
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      相关资源
      最近更新 更多