当MySQL查询与查询条件不匹配时,它返回第0行

时间:2011-04-23 13:45:58

标签: php mysql select primary-key record

我有一张带主键的表:

类型:INT长度:11默认值:NULL额外:auto_increment

该表包含3条记录 - 0,1和4

当我尝试...

SELECT the_key FROM the_table WHERE the_key='someRandomString'

...它返回1条记录(主键0)

我可以用PHP is_numeric()解决它,但为什么不返回0条记录?

1 个答案:

答案 0 :(得分:2)

看起来你正在将int列与字符串值进行比较?看起来MySQL正在将字符串转换为int,得到0,并匹配该行。

两个选项:

  1. 不要那样做。不要写不兼容类型的比较。
  2. 看看MySQL是否有进入更严格模式的选项,它不会自动转换不兼容的类型。