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’ 的索引值。

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