V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Kcelone
V2EX  ›  问与答

Python +sqlalchemy 对于数据库的数据的顺序问题探讨

  •  
  •   Kcelone · 2018-10-22 18:20:46 +08:00 · 1478 次点击
    这是一个创建于 2216 天前的主题,其中的信息可能已经有所发展或是发生改变。

    当前的使用场景是这样,对于插入数据库的数据进行查询操作,查出后一般是乱序的,就需要想个办法进行数据的重组排序,对于原生 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,欢迎各位技术大牛加入,一起学习进步。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1551 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:20 · PVG 01:20 · LAX 09:20 · JFK 12:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.