自定义MySQL bigint(11)比较失败

时间:2012-10-03 08:37:58

标签: python mysql django orm

我的程序中似乎有一个错误,这很奇怪。为了测试,我在manage.py shell上运行了一些非常简单的命令。

models = Model.objects.all()

for model in models :
   print model.field

output: 
0
0
0
0
100004398604871
576962717
576962717
576962717

现在是奇怪的部分:

Model.objects.extra(where = ["field= 576962717"])
output:
[]

Model.objects.extra(where = ["field= 100004398604871"])
output:
[]

# But!!

Model.objects.extra(where = ["field= 0"])
output:
[a bunch of models, aka this one worked]

很明显,大型int比较有问题。我检查了我的mysql数据库结构和我的模型,以确保它们对齐,并且他们做了:

我的mysql cols被标记为bigint(11)

我的django模型是BigIntegerField(editable = False)

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:0)

哦,上帝我很慢,我忘了它应该是bigint(20)而不是11,抱歉!