亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQL為空和=空

SQL為空和=空

翻閱古今 2019-06-25 15:04:47
SQL為空和=空.之間的區別是什么?where x is null和where x = null為什么后者不起作用?
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

在SQL中,對null值和任何其他值(包括其他值)null)使用比較運算符(例如=, !=, <,等)會導致null,被認為是false為了WHERE子句的目的(嚴格地說,它是“不正確”,而不是“假”,但效果是一樣的)。


理由是null意思是“未知”,所以與null也是“未知”。因此,您將不會通過編碼在行上命中。where my_column = null.


SQL提供了用于測試列是否為null.class=‘class 2’>is null和is not null,這是測試null(或者不是null).


下面是一些SQL,顯示了各種條件及其效果,如上面所示。


create table t (x int, y int);

insert into t values (null, null), (null, 1), (1, 1);


select 'x = null' as test , x, y from t where x = null

union all

select 'x != null', x, y from t where x != null

union all

select 'not (x = null)', x, y from t where not (x = null)

union all

select 'x = y', x, y from t where x = y

union all

select 'not (x = y)', x, y from t where not (x = y);

只返回一行(如預期的):


TEST    X   Y

x = y   1   1

看到這個在運行SQLFiddle


查看完整回答
反對 回復 2019-06-25
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

值得注意的是,NULL不等于NULL.

NULL不是一個值,因此不能與另一個值進行比較。

where x is null檢查x是否為空值。

where x = null是檢查x是否等于NULL,這永遠不會是真。


查看完整回答
反對 回復 2019-06-25
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

首先是檢查字段值是否為null但是以后就不會像你期望的那樣工作了,因為null是不等于任何東西的特殊值,因此不能使用=為了它。

因此,當您需要檢查字段值是否為null或不使用:

where x is null

而不是:

where x = null


查看完整回答
反對 回復 2019-06-25
  • 3 回答
  • 0 關注
  • 1109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號