为什么mysql中IS TRUE和=True的结果不一样?

作者站长头像
站长
· 阅读数 14

为什么mysql中IS TRUE和=True的结果不一样?

我有一张user表,结构如下:为什么mysql中IS TRUE和=True的结果不一样?表中数据如下:为什么mysql中IS TRUE和=True的结果不一样?我尝试查询sql:

SELECT * FROM `user` WHERE is_deleted IS TRUE 

结果为:为什么mysql中IS TRUE和=True的结果不一样?查询sql:

SELECT * FROM `user` WHERE is_deleted = TRUE 

结果为:为什么mysql中IS TRUE和=True的结果不一样?

我用true或者false作为查询条件是因为:在java中tinyint能被转成Boolean,所以在查询的时候能直接传true或者false

有没有大佬知道为什么结果不一样呢?

回复
1个回答
avatar
test
2024-06-23

= 做的是数值比较,TRUE 是 1 ,并不等于 127 。IS TRUE 做的是真假判断,非零都为真。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容