mysql 中 where 條件僅為字段的情況
在 MySQL 中,執(zhí)行類似于 select from where 的查詢時(shí),可能會(huì)出現(xiàn)僅返回?cái)?shù)字開(kāi)頭數(shù)據(jù)的情況,而字母和 0 開(kāi)頭的會(huì)被過(guò)濾掉。這是因?yàn)?where 子句后的字段隱式地作為表達(dá)式進(jìn)行比較。
表達(dá)式求值
MySQL 文檔中描述了 where 子句的含義:
如果給定了 WHERE 子句,則表明必須滿足哪些條件才能選擇行。 where_condition 是一個(gè)表達(dá)式,對(duì)于每條要選擇的行來(lái)說(shuō),其值為真。
這意味著 where 子句中的表達(dá)式只要可以轉(zhuǎn)換為 true,就會(huì)滿足條件。
在這個(gè)案例中,where 后面的字段可以看作表達(dá)式 ()。當(dāng)字段的值是非零數(shù)字時(shí),表達(dá)式為 true,否則為 false。因此,查詢會(huì)返回非零數(shù)字開(kāi)頭的記錄,而字母和 0 開(kāi)頭的記錄會(huì)被過(guò)濾掉。
表達(dá)式語(yǔ)法
MySQL 文檔中進(jìn)一步解釋了允許在 where 表達(dá)式中使用的語(yǔ)法元素:
在 WHERE 表達(dá)式中,你可以使用 MySQL 支持的任何函數(shù)和操作符,但聚合(組)函數(shù)除外。
因此,你可以使用各種函數(shù)和運(yùn)算符來(lái)創(chuàng)建復(fù)雜的 where 條件。有關(guān)這些語(yǔ)法的更多信息,請(qǐng)查閱 MySQL 文檔中的表達(dá)式和函數(shù)和運(yùn)算符章節(jié)。