為什么 mysql 的 WHERE 之間無法使用 = 檢索 bool 數(shù)值?
在 MySQL 中使用 WHERE 語句時,確實無法使用 = 直接檢索布爾值。這是因為:
- 枚舉的索引從 1 開始:在您提供的表結(jié)構(gòu)中,is_svddb_match 列定義為一個枚舉類型,其值 ‘true’ 具有索引 1,而值 ‘false’ 具有索引 2。
- = 運算符用于比較值:= 運算符用于比較兩個值是否相等,但不能直接比較布爾值。
因此,對于布爾列,以下是正確的比較方式:
- WHERE is_svddb_match = ‘true’
- WHERE is_svddb_match = ‘false’
切勿使用 WHERE is_svddb_match = 1 或 WHERE is_svddb_match = 0,因為這些比較將始終返回 false。
即使布爾值在 MySQL 中存儲為 1 和 0,但直接與整數(shù)比較 enum 值也會導(dǎo)致錯誤。因此,請使用 ‘true’ 和 ‘false’ 字符串進行比較。
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END