2017-03-25 15 views
1

の変数のためのzip形式のリストをループし、COLUMN1が主キー私は私が更新するテーブルを持つSQLクエリに

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

である私は列に、キーに基づいてデータのリストで列2を更新したいです私はこのクエリを含んでいる私の機能を実行したときに1

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' 

どこに動作しますが、私の構文は、私のスクリプトで間違っていますか?

答えて

3

あなたはSQLで,を削除する必要があります。このクエリで

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

ああああ、ありがとう – pyth0nBen

0

を使用すると、1つのクエリでそれを行うことができます。これははるかに速くなります。私はわずか3つの値を持っています。

INSERT INTO ship_divert (chute,five) 
VALUES (
    ('Fa01','10.0'), 
    ('Fa02','23.0'), 
    ('Fa03','35.0'), 
) ON DUPLICATE KEY UPDATE five=VALUES(five); 
関連する問題