当前的使用场景是这样,对于插入数据库的数据进行查询操作,查出后一般是乱序的,就需要想个办法进行数据的重组排序,对于原生 sql 脚本,这似乎并不是什么难事,只要在查询时,按照(自己想要排的)字段的值大小就可以做到,使用格式:order by 字段名称+'0' desc/asc 的形式进行排序(具体可以网上查,例子有很多,不赘述)。
但是对于 orm 方式的查询数据库并排序应该怎么做呢?通过字符串排序,貌似没听说过,毕竟不定长的字符串作为排序标准,效率可能是极低的,特别是在大量数据面前。这个时候该如何去操作?鄙人当前使用的是添加一个新字段可以命名为 tp_sort 的字段,为 int 类型的值,在查询时就可以通过该字段进行排序。
可能有人会遇到这样的情况,比如先插入了 4,5,6,然后又插入了 1,2,3,这个时候,查出来的顺序是 4,5,6,1,2,3,显然是不符合要求的,那只能再提供一个接口进行每条数据的 tp_sort 值交换。
其实我一直在想,对于少数据量的,并且有特定字符串格式的数据群,是否可以通过字符串来进行排序,然而对于 sqlalchemy,这个 order_by ()函数,参数为字段名,就限制了它的扩展性。各位是否还有别的好的方式,拿出来分享一下。
新建了个技术讨论群:902788038,欢迎各位技术大牛加入,一起学习进步。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.