为什么 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 值:

码上飞 码上飞

码上飞(CodeFlying) 是一款AI自动化开发平台,通过自然语言描述即可自动生成完整应用程序。

码上飞 449 查看详情 码上飞
where is_svddb_match = 'false'

或者使用以下语法比较 enum 值:

where is_svddb_match = 2

因为 false 对应于索引值 2。

以上就是为什么 MySQL 的 where 语句无法直接用 `=` 检索 bool 值?的详细内容,更多请关注其它相关文章!

本文转自网络,如有侵权请联系客服删除。