我正在尝试对表格进行查询,但我想要输入的值是动态的。有一次我想在4列中输入4个值,第二次可能我想在5列中输入5个值。
喜欢:
SELECT * FROM table_name WHERE column1 = x AND column2 = y
但有时候我需要这样的事情
SELECT * FROM table_name WHERE column2 = x AND column6 = y AND column1 = z
相同的插入和更新如下:
UPDATE table_name SET column1 = x, column7 = y WHERE column9 = z
但是,SET
和WHERE
的列可能更多或更少
这就是我所做的,但列数是静态的:
cur.execute("""UPDATE logs SET Log_Status = %s WHERE Log_Path = %s""", (value, pathLog))
谢谢!
答案 0 :(得分:0)
如果params是字典:
params = {'column1': 'value1', 'column2': 'value2'}
您可以尝试这样的事情:
terms = ' AND '.join(f'{key} = %s' for key in params)
query = 'SELECT * FROM table_name WHERE ' + terms
args = (params.values())
cur.execute(query, args)