微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL WHERE条件不等于?

如何解决SQL WHERE条件不等于?

| 是否可以否定where子句? 例如
DELETE * FROM table WHERE id != 2;
    

解决方法

        你可以这样
DELETE FROM table WHERE id NOT IN ( 2 )
要么
DELETE FROM table WHERE id <>  2 
正如@Frank Schmitt指出的那样,您可能还需要注意NULL值。如果要删除所有非ѭ3的内容(包括NULL),请在WHERE子句中添加ѭ4。     ,        您的问题已经被其他海报回答,我想指出的是
 delete from table where id <> 2
(或其变体,不是id = 2等)将不会删除id为NULL的行。 如果您还想删除id = NULL的行:
delete from table where id <> 2 or id is NULL
    ,        
delete from table where id <> 2
编辑:更正MySQL的语法     ,        您可以执行以下操作:
DELETE * FROM table WHERE NOT(id = 2);
    ,        使用ѭ9否定where子句。     ,        回顾形式逻辑和代数。像这样的表达
A & B & (D | E)
可以通过以下两种方式取反: 明显的方法:
!( A & B & ( D | E ) )
上面的内容也可以重述,您只需要记住逻辑表达式的一些属性即可:
!( A & B )
等于
(!A | !B)
!( A | B )
等于
(!A & !B)
!( !A )
等于(A)。 将NOT(!)分布到它所应用的整个表达式中,取反   运算符,并消除双重负面影响:
    !A | !B | ( !D & !E )
因此,通常,可以根据上述规则否定任何where子句。这个否定
select *
from foo
where      test-1
  and      test-2
  and (    test-3
        OR test-4
      )
select *
from foo
where NOT(          test-1
           and      test-2
           and (    test-3
                 OR test-4
               )
         )
要么
select *
from foo
where        not test-1
  OR         not test-2
  OR   (     not test-3
         and not test-4
       )
哪个更好?这是一个非常上下文相关的问题。只有您可以决定。 但是请注意,使用NOT可能会影响优化器的工作范围。您可能会得到一个不太理想的查询计划。     ,        
WHERE id <> 2
应该可以正常工作...那是您的追求吗?     ,        是。如果记忆能为我服务,那应该可以。 我们可以使用:
DELETE FROM table WHERE id <> 2
    ,        最好的解决方案是使用
DELETE FROM table WHERE id NOT IN ( 2 )
    ,        我只是在解决这个问题。如果使用<>或不在变量上,即为null,则结果为false。因此,您必须像这样检查而不是<> 1:
 AND (isdelete is NULL or isdelete = 0)
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?