user表中,我有一个名为SeedNumber的列,该列声明为INT(11)。在MySQL数据库中,INT总是由4个字节表示,括号中的数字11并不意味着INT值将被限制在11位上。This blog解释得很好。
以下是字段的MySQL声明:
通过使用字段SeedNumber,我想获取用户。使用以下SQL查询:

SELECT * FROM user WHERE SeedNmb=99999617

在我的表中,值99999 617是当前最大值。此查询返回一个没有任何问题的用户,如下图所示:
最近注册了一个新用户,SeedNumber等于12561361。当我使用查询中的email列搜索新用户时,会得到以下结果:
select * from user where email like ("dennis@ca....bin.com");

结果如下:
但当我使用查询搜索用户时:
SELECT * FROM user WHERE SeedNmb=12561361

我没有任何结果,这是个问题。下图说明了我的问题:
似乎where子句不起作用,用户也不会作为结果返回。
值12 561×361不大于99×999 617,这是SeedNmb表中的当前最大值。
任何帮助都将不胜感激。

最佳答案

你已经试过把数字放在引号之间了吗?

 SELECT * FROM `user` WHERE `SeedNmb` = '12561361';

关于php - WHERE子句和INT(11)数据类型在MySQL中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26463270/

10-16 07:33