doubleyong
管理员
管理员
  • 最后登录2025-03-16
  • 发帖数1196
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:5701回复:0

[mysql][超级离奇问题]MySql数据库,对varchar类型字段str进行where str=0条件查询时,查询结果是什么

楼主#
更多 发布于:2018-11-09 10:36
在用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
版权声明:本文为博主原创文章,转载请附上博文链接!
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号