Есть ли один SQL-оператор, эквивалентный этим?
UPDATE table_name SET (a = 'something', b='B1') WHERE id=1; UPDATE table_name SET (a = 'something else', b='B2') WHERE id=2; UPDATE table_name SET (a = 'another', b='B3') WHERE id=3;
Да, это:
UPDATE table_name SET a = CASE WHEN id = 1 THEN 'something' WHEN id = 2 THEN 'something else' WHEN id = 3 THEN 'another' END WHERE id IN (1,2,3) ;
но я не уверен, что это то, что вы имеете в виду?
Если у вас есть большой массив данных для вставки, вы можете использовать конструкцию ON DUPLICATE KEY UPDATE. Это будет работать более эффективно в MySQL.
ON DUPLICATE KEY UPDATE
См. мой ответ здесь для аналогичного вопроса, для примера использования.