我试图使用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)