2015-04-23 133 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)