Прошу прощения но вопрос снят, решение найдено самостоятельно, уж незнаю грамотно ли оно или нет, может кто-то делает иначе.
Пример запроса:
UPDATE `table` as t1
INNER JOIN `table` AS t2 ON t2.id=72
INNER JOIN `table` AS t3 ON t3.id=73
SET t2.field=t2.field+3, t3.field=t3.field+12, t1.field=t1.field+98
WHERE t1.id=1
Ваше решение медленное. Эффективнее обновить по 1 полю за 1 запрос обычный, без join'ов.
Или использовать вот такой вариант, он гораздо эффективнее по производительности чем Ваш:
UPDATE `table` SET `field` = CASE `id`
WHEN val1 THEN data1
WHEN val2 THEN data2
ELSE `field` END
я бы написал так
UPDATE TABLE1 SET
FIELD1 = IIF(ID = 1, 1, FIELD1),
FIELD2 = IIF(ID = 2, 12, FIELD2),
FIELD3 = IIF(ID = 3, 0.5, FIELD3)
WHERE ID in (1,2,3)
Не знаю есть ли в MySQL оператор IIF, но его всегда можно заменить на CASE