2

给定 Python 中的一个大 (~10,000) 整数列表,我如何有效地SELECT从 id 在列表中的表中的所有项目?

我试过了:

>>> lst2
[{'id': 97600167}, {'id': 97600168}, {'id': 97611194}]
>>> cur.executemany("SELECT id, parent_id FROM my_table WHERE id=%(id)s", lst2)
>>> cur.fetchall()
[(97611194, 10020688), (None, None), (None, None)]

表中确实存在第二个和第三个 ID(97600168、97611194)。

4

1 回答 1

8

使用您的示例,使用where id in然​​后传递一个参数,该参数是您要选择的 id 值的元组:

>>> lst2
[{'id': 97600167}, {'id': 97600168}, {'id': 97611194}]
>>> ids = tuple(x['id'] for x in lst2)
>>> cur.execute("SELECT id, parent_id FROM my_table where id in %s",[ids])
于 2011-05-16T15:52:17.613 回答