mysql查询错误_一个奇怪的MySQL查询错误

t_user表的phone_number字段是varchar(255)类型的,表示手机号,

在查询某个手机号时,sql语句如下:

SELECT phone_number  FROM t_user WHERE phone_number = 13400000000

查询结果:

phone_number

------------------------------

13400000000

13400000000x

怎么13400000000x也查出来的?

在手机号2边加引号:

SELECT phone_number  FROM t_user WHERE phone_number = '13400000000'

phone_number

------------------------------

13400000000

这样就对了。

原因可能是mysql检测到13400000000是个整数,所以把phone_number取整了再查,看下面语句:

SELECT CAST(phone_number AS UNSIGNED) digit, phone_number FROM t_user WHERE phone_number = 13400000000

结果:

digit                    phone_number

---------------------------------------------------------

13400000000  13400000000

1340000000013400000000x

结论:字符串型的字段值一定要加引号,其实整形、enum型的最好也加引号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值