Задать вопрос
@Zorgios

Как обновить все записи по списку id?

Имеется база с колонками ID(int), Status(int)
Как, имея список ID (из N штук), составить запрос на обновление данных у всех записей из этого списка ID?
(Нужно менять значение поля Status)
Как правильно будет выглядеть запрос? Не отправлять же N запросов на каждый id отдельно...
  • Вопрос задан
  • 114 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@o5a
Если производительность не критична (список id не особо большой), то можно просто использовать executemany (он по факту запускает отдельные update, но автоматом по списку).
cur.executemany('update mytab set status = 1 where id = ?', ((id, ) for id in idlist) )

Для лучшей производительности правильнее будет использовать 'update ... where id in (...)', формируя запрос форматированием с передачей параметров, но там тоже свои особенности.

P.S. не заметил тэг SQLalchemy. Если нужно именно для нее, тогда ответ не подойдет :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы