MySQL 中 IS TRUE 和 = TRUE 為什么會返回不同的結果?

MySQL 中 IS TRUE 和 = TRUE 為什么會返回不同的結果?

mysql 中 is true 和 = true 結果不同的原因

mysql 中,is true 和 = true 返回不同的結果。這背后的原因在于運算符的不同。

= 運算符

= 運算符進行的是數值比較。在 mysql 中,true 映射為整型值 1。因此,is_deleted = true 將比較 is_deleted 列的值和 1。

is true 運算符

另一方面,is true 運算符執行真假判斷。在這種情況下,任何非零值都將被視為真,包括 1、127 和 255。

示例

select * from `user` where is_deleted is true;

此查詢將返回所有 is_deleted 列不為零的行。

SELECT * FROM `user` WHERE is_deleted = TRUE;

此查詢僅返回 is_deleted 列值為 1 的行。

因此,由于 is_deleted 列的值為 127,is true 查詢將返回所有行,而 = true 查詢將返回空結果。

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