yil*_*yin 7 python django postgresql orm
我有一个名称(varchar)字段的表,只保存数字字符串,我想通过此字段对我的查询进行排序.但名称字段按字母顺序排序,但我希望它们按数字顺序排序.例如,如果我得到1 2 200 100作为名称字段值,它的订购量就像1 100 2 200但我需要它们是1 2 100 200.
我能够提出以下行查询
select *
from my_table as t
where t.foo='bar'
order by cast(t.name as integer);
Run Code Online (Sandbox Code Playgroud)
但是不能把它表示为django orm查询集吗?有没有办法做到这一点?
Dan*_*man 10
我首先要问的是为什么你有一个varchar列需要被视为数字,但没关系.
您可以使用extraqueryset方法转换字符串:
MyTable.objects.extra(select={'int_name': 'CAST(t.name AS INTEGER)'},
order_by=['int_name'])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2949 次 |
| 最近记录: |