MySQL中0'0'作为条件时的区别

Posted 朋克

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL中0'0'作为条件时的区别相关的知识,希望对你有一定的参考价值。

一、现象:

今天查询时,某字段x为varchar

可能的值为A B C 0 1 2 3 4

想把0 1 2 3 4的所有数据查出,使用的SQL为

select * from table where x in (0,1,2,3,4)

结果发现,会把所有数据都查出

但是,使用

select * from table where x in (‘0‘,1,2,3,4)

查出数据即为正常数据

 

二、原因:

经查阅,默认情况下,mysql会尽量进行类型转换

所以,当字符串转为整数时,如A、B、C这种值会转换失败,则返回0,所以符合查询条件

以上是关于MySQL中0'0'作为条件时的区别的主要内容,如果未能解决你的问题,请参考以下文章

mysql怎么将四个季度全部查出来,并且'金额显示=0'?(注释:表中没有第三季度的时间)

Mysql的Where条件,加括号和不加括号的区别。求指导。。。。。

数据库中如何判断某参数为空就不执行where条件

grails项目启动时的Disconnected from the target VM, address: '127.0.0.1:xxxxx'错误

mysql如何查询一个表里,同一字段不同条件数据数量?

thinkphp5 怎么将变量作为模糊查询条件