Django从MySQL中选择varchar字段的最大值
我在使用Django 1.1的时候,想从一个varchar类型的列(在MySQL中)中选出最大的值。这个列里存储的数据看起来是这样的:
9001
9002
9017
9624
10104
11823
(实际上,这些数字要比这个大得多。)
在数字还没超过10000的时候,这个方法是有效的:
Feedback.objects.filter(est__pk=est_id).aggregate(sid=Max('sid'))
但是现在,同样的代码会返回9624,而不是11823。
我可以直接在数据库里运行一个查询,得到我想要的结果,但我不知道在Django中怎么做才最好。这个查询是:
select max(sid+0) from Feedback;
如果能得到一些帮助,我会非常感激。
谢谢!
1 个回答
1
为了帮助你解决问题,首先你需要弄清楚为什么在Django中它停止工作了(但在MySQL中似乎没问题)——这个问题出现在10,000的时候。
你生成的查询是什么?可以查看这个问题,了解如何找到这个信息。
我怀疑问题出在你在查询中加了+0来让排序变成数字排序。我觉得Django本身不支持这种做法,所以你有两个选择: