mysql中的 0

   日期:2020-10-06     浏览:93    评论:0    
核心提示:mysql 中的0

前几天在写sql的时候遇到一个问题,查出来的数据跟理想的完全不一致。这里记录一下

 

我要查询type类型为0的数据,- 的数据也出来了。具体的数据库的信息如下。

 首先想到的是,数据类型的问题,sql语句里面写的  type=0, 这里是int 类型,再看一下数据库字段类型。

果然,type是varchar类型,与sql里面的不一致。 mysql会对数据类型自动进行转换,这也是为什么sql写的int类型,却可以到数据的原因。但是为什么 - 的数据也出来了呢?

是不是mysql在类型转化的时候,将非数字字符转换成了0呢?

 

果然,进行转化的时候,非数字类型字符串被转换成了0,数字开头的字符串仅保留了数字。

还可以得到另外一个结论,mysql 在对数据进行隐式转化的时候,是将表内数据进行转换,而不是对查询sql中的字段进行转换,可中转换肯定耗费性能,也会导致索引失效!索引失效的问题

 

 mysql 的容错还体现在别的地方,比如

select 1/0 并不会报错,

这种机制究竟是好是坏还需在具体场景中得出结论,总之,代码严谨一定是好的。

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服