一个奇怪的MySQL查询错误

来源:互联网 发布:公司招聘淘宝直播主播 编辑:程序博客网 时间:2024/05/21 17:45

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

13400000000 13400000000x

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



0 0
原创粉丝点击