MySQL運算符!=和<>及=和<=>的使用區(qū)別
1、運算符:!= 和 <>
在MySQL中!= 和 <> 的功能一致,在sql92規(guī)范中建議是:!=,新的規(guī)范中建議為: <>
下面查詢username為"陳哈哈"以外的用戶,以下兩條語句的作用一樣。
SELECT * FROM t_user WHERE username != "陳哈哈"; SELECT * FROM t_user WHERE username <> "陳哈哈";
2、運算符:= 和 <=>
值得一提的是 = 、 <=> 以及 is 這三個運算符的用法
大家都知道 is 專門用來判斷是否為 NULL,而 = 則是用來判斷非NULL以外的所有數(shù)據(jù)類型使用。而 <=> 則是前兩者合起來。
先提供測試表數(shù)據(jù)如下:
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的數(shù)據(jù)
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 為 ‘陳哈哈’ 的數(shù)據(jù)
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數(shù)據(jù)庫,username <=> NULL 得 0 等價 username is NULL,NOT(username <=> NULL) 等價 username is NOT NULL;
- 當col1,col2兩個可能存在NULL值的列需要進行相等比較時,可以使用 col1 <=> col2,可以把null=null的也關聯(lián)起來。
到此這篇關于MySQL運算符!=和<>及=和<=>的使用區(qū)別的文章就介紹到這了,更多相關MySQL !=和<>及=和<=>內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL中使用PROFILING來查看SQL執(zhí)行流程的實現(xiàn)步驟
在MySQL中,PROFILING功能提供了一種方式來分析SQL語句的執(zhí)行時間,包括查詢執(zhí)行的各個階段,如發(fā)送、解析、優(yōu)化、執(zhí)行等,這對于診斷性能問題非常有用,本文給大家介紹了MySQL中使用PROFILING來查看SQL執(zhí)行流程的實現(xiàn)步驟,需要的朋友可以參考下2024-07-07
詳解MySQL中Order By排序和filesort排序的原理及實現(xiàn)
這篇文章主要為大家詳細介紹了MySQL的Order By排序的底層原理與filesort排序,以及排序優(yōu)化手段,文中的示例代碼講解詳細,感興趣的小編可以跟隨小編一起學習一下2022-08-08
mysql?sql_mode數(shù)據(jù)驗證檢查方法
sql_mode?會影響MySQL支持的sql語法以及執(zhí)行的數(shù)據(jù)驗證檢查,通過設置sql_mode?,可以完成不同嚴格程度的數(shù)據(jù)校驗,有效地保障數(shù)據(jù)準確性,這篇文章主要介紹了mysql?sql_mode數(shù)據(jù)驗證檢查,需要的朋友可以參考下2023-08-08
MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL的問題解決
本文主要介紹了MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03
Node.js對MySQL數(shù)據(jù)庫的增刪改查實戰(zhàn)記錄
這篇文章主要給大家介紹了關于Node.js對MySQL數(shù)據(jù)庫的增刪改查的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作介紹的非常詳細,需要的朋友可以參考下2021-10-10

