為什么 MySQL 中 WHERE 語句無法直接用 = 檢索布爾值?

為什么 MySQL 中 WHERE 語句無法直接用 = 檢索布爾值?

為什么 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)聲明
THE END
喜歡就支持一下吧
點贊11 分享