SQL 查询中枚举类型比较时,为什么使用 = false 无法获取预期结果?

sql 查询中枚举类型比较时,为什么使用 = false 无法获取预期结果?

对于枚举类型,其索引从 1 开始,而不是 0。在给定的表结构中,“is_svddb_match”枚举的索引如下:

  • 'true' -> 1
  • 'false' -> 2

因此,当您使用“= false”比较时,您实际上正在尝试匹配不存在的索引 0。结果集将为空,因为没有行具有索引为 0 的“is_svddb_match”值。

要匹配枚举的实际 'false' 值,您需要使用“= 'false'”比较。这样,查询将查找索引为 2 的值,即 'false'。

在示例中,使用“= 1”比较将返回有“is_svddb_match = 'true'”值的记录,因为 1 是 'true' 的索引值。

以上就是SQL 查询中枚举类型比较时,为什么使用 = false 无法获取预期结果?的详细内容,更多请关注其它相关文章!