MySQL运算符!=和<>及=和<=>的使用区别
作者:_陈哈哈
本文主要介绍了MySQL运算符!=和<>及=和<=>的使用区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
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的也关联起来。
到此这篇关于MySQL运算符!=和<>及=和<=>的使用区别的文章就介绍到这了,更多相关MySQL !=和<>及=和<=>内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!