【问题标题】:What is the difference between <> and != operators in MySQL? [duplicate]MySQL 中的 <> 和 != 运算符有什么区别? [复制]
【发布时间】:2012-12-19 00:50:10
【问题描述】:

如果我使用简单的表格,例如:

create table test ( a int );
insert into test values ( 1 ) , ( 2 ) , ( 2 ) , ( 3 );
select * from test where a <> 2;
select * from test where a != 2;

两个都给我:

+------+
| a    |
+------+
|    1 |
|    3 |
+------+
2 rows in set (0.00 sec)

那么&lt;&gt;!=mysql操作符有什么区别呢?

【问题讨论】:

  • 我找不到任何明确说明的文档,但它们是同义词。

标签: mysql operators


【解决方案1】:

&lt;&gt; 应该是首选,所有条件都相同,因为它符合 sql 标准并且在技术上更便携...

!= 是非标准的,但大多数数据库都实现了它。

sql:2008 语法:

<not equals operator> ::=
  <>

【讨论】:

  • 为什么它在技术上更便携?
  • @Dennis 我猜是因为它是 sql 标准。
  • @Dennis 使用&lt;&gt; 应该更兼容,并且可以轻松地将查询移植到不同的RDBMS中。所以它正在考虑便携?
【解决方案2】:

【讨论】:

  • 谢谢,奇怪的符号。刚刚在同事代码上看到了这一点,然后就卡住了。
  • 是的,虽然我主要使用基于 C 的语言,但我倾向于使用 &lt;&gt;,尽管 != 对我来说感觉更自然。 &lt;&gt; 似乎适合任何 SQL 表示。
【解决方案3】:

没有区别。 &lt;&gt; 是 sql 标准,!= 非标准。

【讨论】:

    【解决方案4】:

    什么都没有。只是写同一件事的两种不同方式

    【讨论】:

      猜你喜欢
      • 2016-04-28
      • 2011-01-02
      • 2016-06-22
      • 1970-01-01
      • 2012-06-24
      • 2012-09-09
      • 2010-11-17
      • 2021-12-23
      • 1970-01-01
      相关资源
      最近更新 更多