【发布时间】:2012-01-30 02:21:28
【问题描述】:
我有一个要从数据库中获取的行 ID 列表。我正在使用 python 和 psycopg2,我的问题是如何有效地将这些 id 传递给 SQL?我的意思是,如果我知道该列表的长度,这很容易,因为我总是可以根据需要手动或自动将尽可能多的“%s”表达式添加到查询字符串中,但在这里我不知道我需要多少.重要的是我需要使用 sql "id IN (id1, id2, ...)" 语句选择这些行。我知道可以检查列表的长度并将合适数量的“%s”连接到查询字符串中,但恐怕它会非常缓慢和丑陋。有谁知道如何解决它?请不要问我为什么需要用“IN”语句来做这件事——这是一个基准,是我课堂作业的一部分。提前致谢!
【问题讨论】:
-
你反对 SQL 答案吗?使用动态 SQL,您可以给出任意长度的字符串并让 SQL 正确读取它。
标签: python postgresql psycopg2