Кажется, что единственный способ использовать UPDATE
для нескольких строк - это CASE
как
UPDATE posts SET rates = CASE
WHEN post_id = '44' THEN rates + 'X'
WHEN post_id = '33' THEN rates + 'Y'
WHEN post_id = '73' THEN rates + 'Z'
WHEN post_id = '63' THEN rates + 'X'
...
ELSE rates END
Рассмотрим таблицу с 1 миллионом строк.Это требует зацикливания более 1 миллиона записей для обновления, например, 10 строк.
Если мы используем одно UPDATE для каждого UPDATE
как
UPDATE posts SET rates = rates + 'X' WHERE post_id='44'
UPDATE posts SET rates = rates + 'Y' WHERE post_id='33'
UPDATE posts SET rates = rates + 'Z' WHERE post_id='73'
UPDATE posts SET rates = rates + 'X' WHERE post_id='63'
...
, у нас будет 10 запросов, но мы не будемЗациклите 999 990 других строк.
Какой метод наиболее эффективен, когда число UPDATE
строк значительно меньше, чем общее количество строк в таблице?
Еще один вопрос: Когда у нас есть ELSE rates END
в CASE
;как mysql пропускает эту запись?Тяжелая задача сопоставима с записью?