为什么mysql中IS TRUE和=True的结果不一样?-灵析社区

春暖花又开

为什么mysql中IS TRUE和=True的结果不一样? 我有一张user表,结构如下: ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/3b184cf7b641490b2a606643909abbb1.png) 表中数据如下: ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/031487a96340f11114f63cb7d07ad56a.png) 我尝试查询sql: SELECT * FROM `user` WHERE is_deleted IS TRUE 结果为: ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/7164610e7f9f7463a16b90e6218dada6.png) 查询sql: SELECT * FROM `user` WHERE is_deleted = TRUE 结果为: ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/d8cd2b734fd8dc4827c4c0a2092d5e68.png) 我用true或者false作为查询条件是因为:在java中tinyint能被转成Boolean,所以在查询的时候能直接传true或者false **有没有大佬知道为什么结果不一样呢?**

阅读量:136

点赞量:0

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