簡體   English   中英

在sql查詢中循環壓縮變量列表

[英]looping zipped list for variables in sql query

我有一個我想要更新的表,column1是主鍵

| chute | five |
|-------|------|
| Fa01  | null |
|-------|------|
| Fa02  | null |
|-------|------|
| Fa03  | null |
|-------|------|

我想根據第1列中的鍵更新第2列的數據列表。

sort_list = [('10.0','Fa01'),('23.0','Fa02'),('35.0','Fa03'),('9.0','Fa04')]

query = "UPDATE ship_divert SET five = %s, WHERE chute = %s"
cursor.executemany(query,sort_list)

但是當我運行包含此查詢的函數時,我收到以下錯誤

'...for the right syntax to use near 'WHERE chute = 'Fa01''

我已經在我的mysql控制台上測試了沒有變量的查詢,但它確實有效

UPDATE ship_divert   
SET five='28.0'  
WHERE chute = 'Fa02'

在我的腳本中我的語法不正確?

您需要刪除,在SQL:

query = "UPDATE ship_divert SET five = %s, WHERE chute = %s"
                                         ^

使用此查詢,您可以在一個查詢中執行此操作。 這會快得多。 在示例中,我只有3個值。

INSERT INTO ship_divert (chute,five)
VALUES (
    ('Fa01','10.0'),
    ('Fa02','23.0'),
    ('Fa03','35.0'),
) ON DUPLICATE KEY UPDATE five=VALUES(five);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM