gpt4 book ai didi

python 在 where 子句中使用元组或数组

转载 作者:行者123 更新时间:2023-12-05 04:44:48 24 4
gpt4 key购买 nike

我有一个如下所示的元组

vilist = (1,2,3,4)

我正尝试在 Psycopg2 查询中使用它们,如下所示

sql = "select * from temp.table1 where ids in {}"
cur.execute(sql,vilist)

应该像这样解析 SQL 字符串

SELECT * FROM temp.table1 WHERE ids IDS (1,2,3,4);

但是,我收到如下所示的错误

SyntaxError                               Traceback (most recent call last)
<ipython-input-91-64f840fa2abe> in <module>
1 sql = "select * from temp.table1 where ids in {}"
----> 2 cur.execute(sql,vilist)

SyntaxError: syntax error at or near "{"
LINE 1: ...rom temp.table1 where ids in {}

请帮我解决这个错误。

最佳答案

使用SQL string composition将标识符或文字传递给查询文本。

import psycopg2
import psycopg2.sql as sql
# ...

vilist = (1,2,3,4)
query = sql.SQL("select * from temp.table1 where ids in {}").format(sql.Literal(vilist))
cur.execute(query)

关于 python 在 where 子句中使用元组或数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69254037/

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