Ну, мне удалось найти способ значительно сократить запрос, хотя он работает примерно так же (я надеюсь ..., мое ограниченное тестирование, кажется, выполняет то же самое, пожалуйста, исправьте меня в этом), поэтому я пишу мой собственный ответ ...
Вот как (не обращайте внимания на немного отличающиеся данные, обратите внимание на изменение структуры):
UPDATE planet_market SET
amount = CASE
WHEN resource_id=3 AND type=0 AND price=2147483647 AND player_id=9 AND planet_id=2 AND owner_type=0 AND factory_id=-1 THEN amount + 1
WHEN resource_id=4 AND type=0 AND price=250000 AND player_id=8 AND planet_id=2 AND owner_type=0 AND factory_id=-1 THEN amount + 1
ELSE amount END
WHERE (resource_id, type, price, player_id, planet_id, owner_type, factory_id) IN ((3,0,2147483647,9,2,0,-1),(4,0,250000,8,2,0,-1))
Есть еще идеи?
Я надеюсь, что это поможет любому, кто ищет решение, подобное этому (я не смог найти никакой другой информации о стековом потоке об обновлении нескольких строк, когда у вас есть несколько ключей)
Интересно, смогу ли я сократить запрос, используя WHERE (column1, column2, ...) IN (data1, data2, ...) внутри WHEN THEN ... собираюсь проверить это дальше (я бы только сократил это при отсутствии "=" ... смеется)