MySQL 中 WHERE 字段 條件為何過濾掉字母和 0 開頭的記錄?

MySQL 中 WHERE 字段 條件為何過濾掉字母和 0 開頭的記錄?

mysql中where字段條件的疑惑

疑惑:在SQL中,使用where 這種形式的條件,能夠查詢出數(shù)字開頭的部分?jǐn)?shù)據(jù),但會(huì)過濾掉字母和0開頭的。這是為何?

解答:

MySQL的where條件可以使用任何函數(shù)或操作符,但不能使用聚合函數(shù)。本例中,字段本身被視為一個(gè)表達(dá)式,該表達(dá)式的值能轉(zhuǎn)為true時(shí)條件成立。

MySQL文檔指出,“如果沒有WHERE子句,該語(yǔ)句會(huì)選擇所有的記錄”。因此,where 實(shí)際上是WHERE IS NOT NULL,即字段不為空。

只有數(shù)字開頭的字段值在轉(zhuǎn)換為真值時(shí)才為true,而字母和0開頭的字段值無(wú)法轉(zhuǎn)換成真值,因此被過濾掉了。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊13 分享