7
我有一个只有数字字符串的名称(varchar)字段的表,我想按此字段排序查询。但名称字段按字母顺序排列,但我希望它们按数字排序。 例如,如果我得到1 2 200 100作为名称字段的值,它被排序为1 100 2 200 ,但我需要它们为1 2 100 200.由django(postgres后端)中的数字字符串排序查询结果
我可以拿出以下行查询
select *
from my_table as t
where t.foo='bar'
order by cast(t.name as integer);
但是不能把这个表示成django orm querysets?有没有办法做到这一点?
会发生什么,如果列一个或多个值没有有效整数,它不惜以拼音,不应用顺序或失败? – sthzg
它会在PostgreSQL上失败,并在MySQL上罚款...我刚刚从数据库转换后发现...如果有人知道如何绕过这一点,那会很棒! – gabn88
对此有兴趣的解决方案,我们有一个既有文本又有整数的列。当排序'10'位于'1'旁边而不是'9'时。 –