MySQL等于运算符截断值并且不能按预期工作

时间:2013-05-24 11:36:12

标签: mysql equals operator-keyword

我刚刚发现了MySQL的一个奇怪的行为,关于等运算符

在我的表示例中,我有一行id = 914。 当我运行以下请求时:

select * from example where id='914z';

MySQL返回id = 914的行。

为什么??? 我的意思是......'914'不是'914z'! 我认为这完全不正常。 如果你不这样做,请告诉我原因,我很乐意讨论。

1 个答案:

答案 0 :(得分:1)

它完全按照预期工作,并记录行为。 Documentation有很好的例子:

  

以下示例说明了将字符串转换为数字   用于比较操作:

mysql> SELECT 1 > '6x'; -> 0
mysql> SELECT 7 > '6x'; -> 1
mysql> SELECT 0 > 'x6'; -> 0
mysql> SELECT 0 = 'x6'; -> 1