[英]Bind list as a parameter in Python ibm_db WHERE IN condition
我可以使用Python列表绑定到ibm_db中的WHERE IN参数的任何方式吗?
基本上是这样的:
sql = "SELECT * FROM TABLE WHERE FILE_NAME IN (?)"
stmt = ibm_db.prepare(conn, sql)
imb_db.bind_param(stmt, 1, ['first.txt', 'second.txt'])
但这不起作用..谢谢您的帮助。
在不同的驱动程序in
值的参数化是一个普遍的问题, python-ibmdb
也不例外。 您无法直接参数化每个占位符的值列表。
您将必须动态定义所需数量的占位符,然后绑定它们。 遵循以下原则:
values = ['first.txt', 'second.txt']
placeholders = ",".join("?" for _ in values)
sql = """
SELECT *
FROM TABLE
WHERE FILE_NAME IN ({placeholders)""".format(placeholders=placeholders)
stmt = ibm_db.prepare(conn, sql)
for index, value in enumerate(values):
imb_db.bind_param(stmt, index, value)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.