使用 psycopg2 进行参数化查询:从 Python 列表中选择
给定 Python 中的一个大(约 10,000)整数列表,如何有效地从 id 位于列表中的表中SELECT
所有项目?
我已经尝试过:
>>> 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)确实存在于表中。
Given a large (~10,000) list of integers in Python, How do I efficiently SELECT
all items from a table whose id is in the list?
I've tried:
>>> 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)]
The second and third id (97600168, 97611194) do exist in the table.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用您的示例,使用
where id in
,然后传递一个参数,该参数是您要选择的 id 值的元组:Using your example, use
where id in
and then pass a parameter which is a tuple of the id values you want to select: