MYSQL没有正确比较big int(20)

时间:2014-06-07 06:22:24

标签: mysql compare bigint

我是mysql的新手...我有一个表'table1',其中'item_no'列是bigint(20)。当我尝试根据item_no从表中选择特定行时,它不会返回确切的行。相反,它返回一组与前几个字符匹配的行。为什么会这样,我的查询应该如何获得确切的行。

table1
----------
item_no BIGINT(20) --> Primary key
value VARCHAR(40)

我的表格中的item_no有以下值

item_no                value
----------
10000000161402118444   blah
10000000161402118613   blah
10000000161402118984   blah
10000000161402119080   blah
10000000161402119151   blah
10000000161402119275   blah
10000000161402119680   blah
10000000161402119866   blah
10000000161402119946   blah

这是我的查询

SELECT item_no FROM table1 WHERE item_no = 10000000161402119946

预期结果

item_no
----------
10000000161402119946

但是我的查询返回了以下内容:

item_no
----------
10000000161402119275
10000000161402119680
10000000161402119866
10000000161402119946

我无法弄明白......请帮帮我......

1 个答案:

答案 0 :(得分:0)

您的号码超过了bigint limit。 如果你的字段是无符号的,那么它就可以工作。

create table biginttest2 (id bigint unsigned);