今天在寫sql語句的時候,想確認下mysql的不等於運算符是用什么符號表示的
經過測試發現mysql中用<>與!=都是可以的,但sqlserver中不識別!=
,所以建議用<>
selece * from jb51 where id<>45
sql 里 符號<> 於 != 的區別
<> 與!=都是不等於的意思,但是一般都是用<>來代碼不等於因為<>在任何SQL中都起作用但是!=在sql2000中用到,則是語法錯誤,不兼容的
sql中的等於和不等於, '=' ,'!=','<>','is null'....
不等於:<> ,!=,~= ,^= 這四個符號據說都可以在oracle中表示不等於,但是試了之后發現<> ,!= ,^=是可以的,~=不行,需要注意的是,只有<>是標准的sql語法,可以移植,其他的都是oracle平台的特性,移植性較差,所以開發中,盡量使用<>表示不等於
等於:=不用多說,但是要進行null的等於判斷時,須使用is null 或is not null,null只能通過is null或者is not null來判斷,其它操作符與null操作都是false。
例子,select * from bl_ip_dt where amount <> 800,這條語句查不出amount等於null 的記錄,
select * from bl_ip_dt where amount <> 800 or amount is null 才是可以的MySql的簡單查詢不等於NULL
查詢表中aa是null的數據:
select * from table where aa is null;
查詢表中aa不等於1的數據:
select * from table where aa <> 1;
NULL值操作:
NULL值可能令人感到奇怪直到你習慣它。概念上,NULL意味着“沒有值”或“未知值”,且它被看作與眾不同的值。為了測試NULL,你不能使用算術比較 操作符例如=、<或!=。為了說明它,試試下列查詢:
mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
| NULL | NULL | NULL | NULL |
+----------+-----------+----------+----------+
很顯然你不能通過這些比較得到有意義的結果。相反使用IS NULL和IS NOT NULL操作符:
mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
| 0 | 1 |
+-----------+---------------+
請注意在MySQL中,0或 NULL意味着假而其它值意味着真。布爾運算的默認真值是1。
自我感覺is null或者IFNULL(SUM(),XXX)在開發中經常用到。
另外在php中 <> 和 != 都是可以用的
$a == $b 等於 TRUE,如果 $a 等於 $b。
$a === $b 全等 TRUE,如果 $a 等於 $b,並且它們的類型也相同。(PHP 4 引進)
$a != $b 不等 TRUE,如果 $a 不等於 $b。
$a <> $b 不等 TRUE,如果 $a 不等於 $b。
$a !== $b 非全等 TRUE,如果 $a 不等於 $b,或者它們的類型不同。(PHP 4 引進)
$a < $b 小與 TRUE,如果 $a 嚴格小於 $b。
$a > $b 大於 TRUE,如果 $a 嚴格 $b。
$a <= $b 小於等於 TRUE,如果 $a 小於或者等於 $b。
$a >= $b 大於等於 TRUE,如果 $a 大於或者等於 $b.