Как изменить несколько записей одним запросом?
Есть такой код для изменения значения по его id
cur.execute('UPDATE items SET name=? WHERE id=?', (price, id))
Сейчас программа в цикле по очереди изменяет каждую строчку.
Можно ли внести изменения одним запросом взяв значения из массива?
[['1285', 13.23], ['534', 21.99]
Первое значение - id=1285, второе значение - на что надо изменить 13.23.
Ответы (2 шт):
Автор решения: MaxU
→ Ссылка
Воспользуйтесь cursor.executemany():
parameters = [['1285', 13.23], ['534', 21.99]]
cur.executemany('UPDATE items SET name=? WHERE id=?', parameters)
Автор решения: S.H.
→ Ссылка
мне кажется, опреатора UPDATE со множественными значениями в SQL нет.
Но я могу предложить сделать всё за одно DELETE и один INSERT, примерно на SQL это будет так:
DELETE FROM items WHERE id IN (13.23, 21.99);
INSERT INTO items ( name, id ) VALUES ( '1285', 13.23 ), ( '534', 21.99 )