我正在尝试使用 cursor.execute
执行 postgres 选择查询。如果参数数量动态变化,我该如何编写查询。
例如
查询可以是一个实例
cursor.execute('SELECT name FROM personal_details WHERE id IN (%s, %s)', (3, 4))
在其他一些情况下查询可以是
cursor.execute('SELECT name FROM personal_details WHERE id IN (%s, %s, %s)', (3, 4, 5))
如果参数在列表中可用,如 ids = [3, 4]
或 ids = [3, 4, 5]
正确的书写方式是什么这个查询
我尝试了以下代码
cursor.execute("SELECT name FROM personal_details WHERE id IN param = %s", [ids['param']])
但是它返回了一个错误,说 TypeError: list indices must be integers or slice, not str
最佳答案
您需要使用 ANY和 psycopg2 list adaption :
cursor.execute("SELECT name FROM personal_details WHERE id IN param = ANY(%s)", [ids])
关于python - 如何使用 python 执行具有多个动态参数的 postgres 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74358591/