gpt4 book ai didi

python - 列出pyodbc准备语句中的参数

转载 作者:行者123 更新时间:2023-12-04 15:33:40 25 4
gpt4 key购买 nike

我正在尝试使用以下模式创建一个准备好的语句:

SELECT * FROM table WHERE key IN (value1, value2, value3, ..., valueN)

使用 pyodbc 我尝试了以下语法:
values = set(...)
cursor.execute('SELECT * FROM table WHERE key IN (?)', values)

错误:
The SQL contains <N> paramter markers, but 1 parameters were supplied

我是否必须生成 (?, ?, <...>, ?)对于 N ?我自己或者我可以以某种方式将列表/集合插入到准备好的语句的单个字段中。

最佳答案

您正在尝试将列表/集合/集合绑定(bind)到 ?只能接收单个标量值的占位符。这里的一种选择是构建一个动态 WHERE key IN (?,?,?)基于列表长度的子句:

values = [value1, value2, value3, ...]
query = '(?' + ', ?' * (len(values) - 1) + ')'
sql = 'SELECT * FROM table WHERE key IN ' + query
cursor.execute(sql)

这里的关键是如果 ?的数量占位符与您尝试绑定(bind)的列表的大小相匹配,然后它就可以工作了。

关于python - 列出pyodbc准备语句中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60505824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com