Java知网

  • 首页
  • Spring Boot
  • 面试精选
  • 程序人生
  • 资源
  • 友链
  • 关于我
  1. 首页
  2. Mysql
  3. 正文

MySQL运算符 != 和 <> 以及 = 和 <=> 的区别

2021年4月21日 375点热度 0人点赞 0条评论

1、运算符:!= 和 <>

  • 在MySQL中!= 和 <> 的功能一致,在sql92规范中建议是:!=,新的规范中建议为: <>

下面查询username为"陈哈哈"以外的用户,以下两条语句的作用一样。

SELECT * FROM t_user WHERE username != "陈哈哈";
SELECT * FROM t_user WHERE username <> "陈哈哈";

2、运算符:= 和 <=>

值得一提的是 = 、 <=> 以及 is 这三个运算符的用法

大家都知道 is 专门用来判断是否为 NULL,而 = 则是用来判断非NULL以外的所有数据类型使用。而 <=> 则是前两者合起来。

先提供测试表数据如下:

mysql> SELECT * from t_user;
+----+-----------+----------+
| id | username  | password |
+----+-----------+----------+
|  1 | 陈哈哈    | abcd1234 |
|  2 | 侨布斯    | 1234     |
|  3 | 提莫      | 1234abcd |
|  4 | aaa       | NULL     |
|  5 | NULL      | aaaa     |
+----+-----------+----------+
5 rows in set (0.00 sec)

下面两个SQL的查询结果一致,均查出了username 为 NULL的数据

mysql> SELECT * from t_user where `username` is null;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  5 | NULL     | aaaa     |
+----+----------+----------+
1 row in set (0.00 sec)

mysql> SELECT * from t_user where `username` <=> null;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  5 | NULL     | aaaa     |
+----+----------+----------+
1 row in set (0.00 sec)

下面两个SQL的查询结果一致,均查出了username 为 ‘陈哈哈’ 的数据

mysql> SELECT * from t_user where `username` = '陈哈哈';
+----+-----------+----------+
| id | username  | password |
+----+-----------+----------+
|  1 | 陈哈哈    | abcd1234 |
+----+-----------+----------+
1 row in set (0.00 sec)

mysql> SELECT * from t_user where `username` <=> '陈哈哈';
+----+-----------+----------+
| id | username  | password |
+----+-----------+----------+
|  1 | 陈哈哈    | abcd1234 |
+----+-----------+----------+
1 row in set (0.00 sec)

可见,<=>运算符相当于封装了= 和 is ,既可以判断 非NULL值,也可以用来判断NULL值。

  • <=> 只用于MySQL数据库,username <=> NULL 得 0 等价 username is NULL,NOT(username <=> NULL) 等价 username is NOT NULL;
  • 当col1,col2两个可能存在NULL值的列需要进行相等比较时,可以使用 col1 <=> col2,可以把null=null的也关联起来。
作者:_陈哈哈
来源:https://blog.csdn.net/qq_39390545/article/details/115331735

相关文章:

  1. 为什么不建议在mysql中使用UTF-8
  2. 面试官:数据库索引失效有哪些原因?
标签: mysql
最后更新:2021年9月4日

javatip

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

取消回复
搜一搜
扫一扫
    关注公众号
  • 技术干货推送
  • 免费资料领取
  • 定时福利发放
分类
  • Java / 110篇
  • Mysql / 17篇
  • Redis / 10篇
  • Spring Boot / 29篇
  • Spring Cloud / 16篇
  • 消息队列 / 14篇
  • 程序人生 / 21篇
  • 资源 / 4篇
  • 面试 / 23篇
归档
  • 2022年7月 / 1篇
  • 2022年4月 / 1篇
  • 2022年1月 / 1篇
  • 2021年12月 / 9篇
  • 2021年11月 / 2篇
  • 2021年9月 / 10篇
  • 2021年8月 / 4篇
  • 2021年7月 / 2篇
  • 2021年6月 / 10篇
  • 2021年5月 / 18篇
  • 2021年4月 / 75篇
  • 2021年3月 / 78篇

COPYRIGHT © 2021 javatip.cn. ALL RIGHTS RESERVED.

陇ICP备19004310号-2

甘公网安备 62010202003150号