在我的user表中,有一个名为SeedNumber的列,它被声明为INT(11)。在MySQL数据库中,INT总是由4个字节表示,括号中的数字11并不意味着int值将被限制在11位数字内。This blog很好地解释了这一点。
下面是字段SeedNumber的MySQL声明:

通过使用字段SeedNmb,我想获取用户。使用以下SQL查询:
SELECT * FROM user WHERE SeedNmb=99999617在我的表中,值99999617是当前的最大值。这个查询返回一个没有任何问题的用户,如下图所示:

最近在SeedNumber注册的新用户等于12561361。当我在查询中使用电子邮件列搜索新用户时,我得到以下结果:
select * from user where email like ("dennis@ca....bin.com");结果如下:

但当我使用查询搜索用户时:
SELECT * FROM user WHERE SeedNmb=12561361我没有得到任何结果,这是一个问题。下图显示了我的问题:

似乎where子句不知何故不起作用,user没有作为结果返回。
值12 561 361不大于SeedNumber表中的当前最大值99 999 617。
任何帮助都将不胜感激。
发布于 2014-10-20 20:58:48
你已经试过把数字放在引号之间了吗?
SELECT * FROM `user` WHERE `SeedNmb` = '12561361';发布于 2014-10-20 21:39:23
在MySQL命令行中试用它。我猜你的IDE出了点问题。
发布于 2017-10-06 00:57:52
我遇到了同样的问题,并通过重新创建索引来修复它。我注意到,如果我使用"like“而不是"=”,查询将会起作用。explain计划显示索引仅在使用"=“时使用,而不在使用"like”时使用,因此我删除并重新创建了该索引。查询再次开始工作。
https://stackoverflow.com/questions/26463270
复制相似问题