我的MySQL
db的表名为membertable
。该表由两个字段组成,分别是memberid
和membername
。 memberid
字段的类型为integer
,并使用从2001
开始的auto_increment函数。 membername
表的类型为varchar
。虽然在where子句中给定的值为假,但select语句返回数据
membertable
有两个记录具有与上述相同的顺序。这些记录是这样的:
MEMBERID:2001 成员名称:约翰史密斯
MEMBERID:2002 成员名称:威尔·史密斯
,我发现一个很奇怪的,当我跑反对memberid
领域SELECT
声明。运行以下语句:
SELECT * FROM `membertable` WHERE `memberid` = '2001somecharacter'
它返回第一个数据。
为什么会发生这种情况?没有记录memberid
= 2001somecharacter
。它看起来像MySQL只搜索前4个字符(2001年),并且当它找到相关数据(这是上面返回的数据)时,它会拒绝其余字符。
这怎么会发生?有什么办法可以关闭这种行为?
-
membertable
使用innodb
引擎
你可以让[sqlfiddle.com](http://sqlfiddle.com)证明这种行为吗? – Terminus