python - 如何使用 python 执行具有多个动态参数的 postgres 查询

标签 python postgresql

我正在尝试使用 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

最佳答案

您需要使用 ANYpsycopg2 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/

相关文章:

sql - 使用 SERIAL 主键插入或更新表

ruby-on-rails - 在带有 Ruby on Rails 的 PostgreSQL 中使用间隔

python - 谷歌应用引擎 : Won't serve static assets with below error:

python - 如何在 PyTorch 中指定多个转换层后的展平层输入大小?

python - 打开 csv 作为整数列表

sql - 添加总计行并转换为百分比

Highcharts JSON 调用的 javascript 关联数组、循环和/或范围问题

postgresql - 关于 POSTGRES 表分区的建议

python - 在 tkinter TreeView 中创建网格线

python - 从 Python 中的列表填充字典中的键元组和值