2015-04-23 167 views
0

我试图在表上查询,但我想输入的值是动态的。有一次,我想输入4列中的4个值,第二次也许我想输入5列中的5个值。
像:
动态插入/更新/选择mysql python

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 但是,列在SETWHERE可多可减。
这是我做的,但列数是静态的:
cur.execute("""UPDATE logs SET Log_Status = %s WHERE Log_Path = %s""", (value, pathLog))
谢谢!

+0

哪来显示你在做这样的尝试Python代码? –

+0

现在我只有简单的代码,列的静态数:cur.execute(“”“更新日志设置Log_Status =%s WHERE Log_Path =%s”“”,(价值,pathLog)),我没有任何想法如何使动态列 – VladutZzZ

+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)