為什么 MySQL 的 where 語句無法直接用 `=` 檢索 bool 值?

為什么 MySQL 的 where 語句無法直接用 `=` 檢索 bool 值?

mysql 的 where 之間無法使用 = 檢索 bool 值的原因

mysql 中,enum 類型的索引是從 1 開始的,這意味著在表結構中定義的 is_svddb 和 is_svddb_match 列中的 true 和 false 值對應于索引值 1 和 2。

因此,在查詢中使用 where is_svddb_match = false,mysql 實際上是在比較 is_svddb_match 列的索引值是否等于 0,而不是 2,因此返回 0 行結果。

解決方法是使用以下語法比較 enum 值:

where is_svddb_match = 'false'

或者使用以下語法比較 enum 值:

where is_svddb_match = 2

因為 false 對應于索引值 2。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享