Python & Sqlite:在 sqlite 表中,我有一个 id、name 和 point。我有一个 id 列表,我想按点对它们进行排序



制作一个看起来与我实际拥有的相似的示例

表我在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做的最好的方法。

如果查字典是一个好方法,请帮我做。(我看到一些人说我应该使用行工厂之类的,但我不知道那是什么…)

您可以直接在查询本身中进行排序。

使用以下算法:

  1. 发送id列表查询
  2. 在sql中排序
  3. 返回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)

最新更新