Размещено: 2023-12-12 12:49:05

Теги: mysql

SQL ОБНОВЛЕНИЕ НЕСКОЛЬКИХ СТРОК ОДНИМ ЗАПРОСОМ

Что бы в mysql одним запросом записать изменения в нескольких строках, можно воспользоваться запросом:

UPDATE `test` SET `curs`= CASE
WHEN `id`='1' THEN '111'
WHEN `id`='2' THEN '2222'
WHEN `id`='3' THEN '33333'
ELSE `curs`
END
WHERE `coin`='ltc'


Если перевести на русский, то в принципе уже все становится понятно:

ОБНОВЛЕНИЕ `test` УСТАНОВИТЬ `curs`= В_СЛУЧАЕ
КОГДА `id`='1', ТОГДА '111'
КОГДА `id`='2' ТОГДА '2222'
КОГДА `id`='3', ТОГДА '33333'
ИНАЧЕ `curs`
КОНЕЦ
ГДЕ `coin`='ltc'

В результате этого sql-запроса выполнится запись в строках с id = 1, 2, 3, при условии что coin='ltc'. Если у какой-то строки coin!='ltc' то записи в этой строке не произойдет, но во всех остальных строках значения будут записаны.

Важное дополнение! Тестирование на практике показывает, что данный способ работает даже медленнее, чем если сделать много мелких запросов.


На эту страницу чаще всего попадают по запросам: одним запросом несколько строк, update несколько значений, база данных, mysql