关灯
开启左侧

[超级离奇问题]MySql数据库,对varchar类型字段str进行where str...

[复制链接]
doubleyong 发表于 2018-11-12 10:30:22 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
在用MySql查询数据的时候,遇到了一个奇怪的问题。用一个varchar类型的字符串str,作为条件与0比较时,会查str不为0的数据。
比如:select * from tb where str=0;会查到str为'0','0abc','abc'等数据。不符合查询的条件啊。

原因如下:
MySql在比较varchar类型和0的时候,会把varchar类型转换成数字0。
所以用str=0作为条件时,会把以0开头的字符串和普通字符串都转换成0。(比如:0abc,0,abc)
只排除一些以非0开头的字符串。(比如:1abc)
同理,查询str=1的数据,也会排除开头非1的字符串。

---------------------
作者:紫枫叶520
来源:CSDN
原文:https://blog.csdn.net/zifengye520/article/details/48689175
版权声明:本文为博主原创文章,转载请附上博文链接!


 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

排行榜
关闭

站长推荐上一条 /1 下一条

官方微信

全国服务热线:

400-0708-360

公司地址:国家西部信息安全产业基地(成都市高新区云华路333号)

邮编:610000    Email:2908503813@qq.com

Copyright   ©2015-2016  EOIT论坛Powered by©Discuz!    ( 蜀ICP备11000634号-7 )