where =“1234”不等于where = 1234

时间:2013-03-24 07:55:57

标签: mysql sql where

对于sql专业人员来说,这可能是一个简单的问题: 怎么可能跟随数据库查询(一个字段varchar(30)),得到不同的结果:

SELECT field FROM table WHERE field=1234;

返回:

1234
1234

SELECT field FROM table WHERE field="1234";

返回:

1234

因此,第一个查询似乎返回结果1234两次,无论第二个返回结果只有一次。数据库中的数据未知。为了使其更加不安,数据库中的字段“字段”具有唯一的密钥。

谢谢!

2 个答案:

答案 0 :(得分:1)

一种可能性是字段是字符串,两行包含这些值

1234
1234.0

这两个都将与数字1234进行比较。

http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html

答案 1 :(得分:0)

第一种情况“1234”是正确的,因为字段值不接受重复值。

确保没有错误或系统错误:

尝试在新表上应用相同的内容,其中包含很少的值。将列设为Unique ...并使用“”并且不使用“”来应用查询。

结果应仅在第一种情况下使用“”返回一个值。

此致