Mail.ruПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискВсе проекты

Соединение двух UPDATE запросов в один (MySQL) (case,when,then)

dsfsdfsdfdsf dfsdfsdfsfdsd Ученик (93), закрыт 1 месяц назад
Нужно для оптимизации, соединить два запроса в один.
Речь о игровом сервере, и там это имеет значение.

Вот есть такие два рабочие запроса:

UPDATE `test` SET `Clan` = '-1', `ClanRank` = '-1' WHERE `Clan` = '3' AND `ClanRank` = '6'
UPDATE `test` SET `Clan` = '3', `ClanRank` = '6' WHERE `id` = '4'

p.s. Значение Clan и id подставляются всегда разные при каждом новом запросе.

Есть список игроков. Два столбца (+индекс), Clan и ClanRank
К примеру такие данные:
ID: 1 | Clan: 3 | ClanRank: 6
ID: 2 | Clan: 3 | ClanRank: 6
ID: 3 | Clan: 3 | ClanRank: 4
ID: 4 | Clan: -1 | ClanRank: -1

В результате запросов должно получиться так:
ID: 1 | Clan: -1 | ClanRank: -1
ID: 2 | Clan: -1 | ClanRank: -1
ID: 3 | Clan: 3 | ClanRank: 4
ID: 4 | Clan: 3 | ClanRank: 6

В интернете нарыл способ.
Он выполняет то что мне нужно. Но изменяет только один столбец.

UPDATE test SET ClanRank =
CASE
WHEN id = 3 THEN 6
WHEN Clan = 3 AND ClanRank = 6 THEN -1
end;

Как заставить его еще изменить столбец Clan? Возможно ли это вообще?
Как не пытался добавить, выдает ошибку о неверном синтаксисе.
Похожие вопросы
Также спрашивают