制作一个看起来与我实际拥有的相似的示例
表我在Sqlite数据库:
id1 | A | 13
id2 | B | 24
id3 | C | 35
id4 | D | 32
id5 | E | 16
...
我将使用的列表:
[id1, id3, id4, id5]
我想按保存在Sqlite数据库中的点对这个列表进行排序。
列表如下所示:
[id4, id2, id5, id1]
这基本上是我现在想做的。我想过获取用户的id和点数,并将其制作成python中的字典,但我确定如何做到这一点,因为我没有使用SQLite的经验。
我想知道是否有一种方法可以通过更高级的东西来实际包含SQL查询中的代码,或者如果没有,我可以为python做的最好的方法。
如果查字典是一个好方法,请帮我做。(我看到一些人说我应该使用行工厂之类的,但我不知道那是什么…)
您可以直接在查询本身中进行排序。
使用以下算法:
- 发送id列表查询 在sql中排序
- 返回id列表
试试这个(没有测试过,但应该可以):
id_list = [id1, id3, id4, id5]
query="SELECT id FROM sqlitetable WHERE id in ({}) ORDER BY points DESC".format(','.join(['?']*len(id_list)))
cursor.execute(query, id_list)