有沒有辦法在單個指令中完成這兩個更新?Python Sqlite更新多個值
cur.execute("UPDATE table_name1 SET email = '[email protected]' WHERE id = 4")
cur.execute("UPDATE table_name1 SET phone = '0400-123-456' WHERE id = 4")
我試過各種變化,但不能得到它的工作。
編輯:我想通過電子郵件,電話,我會作爲參數。
有沒有辦法在單個指令中完成這兩個更新?Python Sqlite更新多個值
cur.execute("UPDATE table_name1 SET email = '[email protected]' WHERE id = 4")
cur.execute("UPDATE table_name1 SET phone = '0400-123-456' WHERE id = 4")
我試過各種變化,但不能得到它的工作。
編輯:我想通過電子郵件,電話,我會作爲參數。
以下工作:在這一點上它只是標準的SQL。
cur.execute("""UPDATE table_name1
SET email = '[email protected]', phone = '0400-123-456'
WHERE id = 4""")
對我來說,有一個語法錯誤。我不得不刪除表名和SET之間的引號。 'cur.execute(「UPDATE table_name1 SET email ='[email protected]',phone ='0400-123-456'」 「WHERE id = 4」)' –
好的。我提出了一個解決方案,可以使用參數。
首先感謝David爲他的原始答案。它有一個小的語法錯誤(在對該答案的評論中得到糾正),但它足以幫助我解決如何在沒有參數化的情況下使其工作。
(注:我覺得大衛張貼了他的答覆之前,我編輯的問題,有必要增加使用參數)
然後this answer幫我parametise的解決方案。
這是我對問題的解決方案。爲了防止別人遇到同樣的問題,我正在醞釀,因爲在發佈原始問題之前我做了相當多的搜索,找不到答案。
conn = sqlite3.connect('connex.db')
cur = conn.cursor()
mobileval = '0400-123-456'
emailval = '[email protected]'
constrain = 4
cur.execute("UPDATE licontacts310317 SET liemail=%s, limobile=%s
WHERE %s=?" % (liemailval, limobileval, id), (constrain,))
conn.commit()
conn.close()
你採取了[看看'sqlite3' **文檔](https://docs.python.org/2/library/sqlite3.html)嗎? –
是的。我看了一下,但它沒有幫助在多個值上執行UPDATE的python實現。 –