我试图使用psycogp2从postgresql数据库中检索一些数据,要么排除可变行数,要么不排除任何行。
我目前掌握的代码是:

def db_query(variables):
    cursor.execute('SELECT * '
                   'FROM database.table '
                   'WHERE id NOT IN (%s)', (variables,))

这确实部分起作用。例如,如果我打电话给:
db_query('593')

它起作用了。任何其他单个值都一样。然而,当我输入多个变量时,似乎无法使其工作,例如:
db_query('593, 595')

我知道错误:
psycopg2.DataError: invalid input syntax for integer: "593, 595"

我不知道如何正确输入查询或修改SQL查询。感谢任何帮助。
谢谢

最佳答案

传递一个适合记录的元组:

query = """
    select *
    from database.table
    where id not in %s
"""
var1 = 593
argument = (var1,)
print(cursor.mogrify(query, (argument,)).decode('utf8'))
#cursor.execute(query, (argument,))

输出:
select *
from database.table
where id not in (593)

10-08 14:27