疑惑:在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)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END