MySQL. Обновить сразу несколько строк в одной таблице
Подскажите пожалуйста, возможно ли обновить сразу несколько строк в одной таблице, одним запросом?
UPDATE: Что-то подобное как у INSERT? Т.е. разные значения для каждой строчки.
UPDATE: Что-то подобное как у INSERT? Т.е. разные значения для каждой строчки.
1 ответов
примерно вот так
UPDATE TABLE SET
last_run = NOW(),
run_counter = run_counter + 1,
next_run =
CASE
WHEN schedule = 'hourly' THEN
DATE_ADD(NOW(), INTERVAL 1 HOUR)
WHEN schedule = 'daily' THEN
DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL TIME_TO_SEC(run_time) SECOND)
WHEN schedule = 'weekly' THEN
DATE_ADD(
DATE_ADD(DATE_SUB(CURDATE(), INTERVAL WEEKDAY(NOW()) DAY), INTERVAL 7 DAY),
INTERVAL CONCAT(ROUND(run_day-1), ' ', run_time) DAY_SECOND)
WHEN schedule = 'monthly' THEN
DATE_ADD(
DATE_ADD(DATE_SUB(CURDATE(), INTERVAL DAYOFMONTH(NOW())-1 DAY), INTERVAL 1 MONTH),
INTERVAL CONCAT(ROUND(run_day-1), ' ', run_time) DAY_SECOND)
ELSE
DATE_ADD(NOW(), INTERVAL TIME_TO_SEC(run_interval) SECOND)
END
WHERE cron_id = {$job['cron_id']}
update test_table set title = 'Одинаковый заголовок в 5 строках, где id больше 1, но меньше 6' where id > 1 AND id < 6;
Подойдет?
Самый простой пример, что приходит в голову :
UPDATE table1 SET col1= col1+10 WHERE col2 > 1;
Увеличить все значения col1 на 10 для строк, у которых col2 > 1.