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排序怎么将字符型字段按整型排序的主要内容,如果未能解决你的问题,请参考以下文章

Mysql数据库按照varchar字符串类型排序和按照int整型类型排序的区别和注意点及解决方案

arcgis无法构建栅格属性表的情况下,如何分级赋值

mysql自动排序为啥10在1后面不在9后面

SQL 字符串按大小排序

MySQL查询时,怎么排除某个字段查询

编写一个字符串排序程序,对一个字符串的数值进行从小到大的排序,要求使用包装类对数值类型的字符串转换成整型进行排序