如何将IN或NOT IN子句作为变量传递给查询?
当我在查询下面传递变量时,我得到:
SELECT * FROM table_name WHERE column_name 'IN' ('product', 'category')
哪个triger出现了引号'IN'的错误?
query_clause = 'IN'
##query_clause could equal 'NOT IN'
cur = my_connection.cursor()
cur.execute("SELECT * FROM table_name WHERE column_name %s ('product', 'category')", (query_clause,))发布于 2016-06-26 03:55:38
是的,这是意料之中的。使用布尔参数代替:
SELECT * FROM table_name
WHERE (column_name IN ('product', 'category')) = %s然后,可以将true或false传递到参数中。
发布于 2016-06-26 03:55:00
您不能为此使用sql格式字符串。只是一个普通的格式字符串
cur.execute("SELECT * FROM table_name WHERE column_name %s ('product', 'category')"%(query_clause,))值得注意的是,假设query_clause是可信的输入.(如果这是不可信的输入,它将不会对注射进行消毒)
https://stackoverflow.com/questions/38035031
复制相似问题