django排序怎么将字符型字段按整型排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django排序怎么将字符型字段按整型排序相关的知识,希望对你有一定的参考价值。
搞这个问题搞了很久,终于自己给弄出来啦,虽然这个提问时间过了这么久了,不过以后说不定也会有人遇到同样的问题,一搜就搜到这里了,所以还是把自己的方法附上本人用mysql数据库,chart表中有个time字段,字符型,想让查询结果按照time字段的整型排序
list=Chart.objects.extra(select='t':'time+0')
list=list.extra(order_by=["t"])
相当于sql语句
SELECT *,time+0 AS t FROM chart ORDER BY t
问题完美解决 参考技术A sort(key=int)
mysql自动排序为啥10在1后面不在9后面
如果排序的字段属于字符型的那么就会出现题主提问中的情况,因为数据库引擎是按照对字符串的排序规则实施排序的(从字符串左边第一个字符开始往后逐位比较的,例如“1”<"10,"10"<"2",“10"<"3",..."10"<"9"等)。解办法,可以将该排序字段的数据类型改为数字,如果无法改为数字的话,则可以将字符类型转换为数字类型进行排序。 参考技术A 如果排序的字段属于字符型的那么就会出现题主提问中的情况,因为数据库引擎是按照对字符串的排序规则实施排序的(从字符串左边第一个字符开始往后逐位比较的,例如“1”<"10,"10"<"2",“10"<"3",..."10"<"9"等)。
解办法,可以将该排序字段的数据类型改为数字,如果无法改为数字的话,则可以将字符类型转换为数字类型进行排序。 参考技术B 数据格式问题,文本格式排序会出现这类
以上是关于django排序怎么将字符型字段按整型排序的主要内容,如果未能解决你的问题,请参考以下文章
请问django如何将字符型字段按数值型排序,如‘12,123,1111,133’,排序后结果为12,123,133,1111,在线等
在 django(postgres 后端)中按数字字符串排序查询结果