dsfsdfsdfdsf dfsdfsdfsfdsdУченик (93)
4 года назад
Это похоже на бред больного человека.
Но это работает...
В чем нюансы такого запроса?
Или можно спокойно юзать?
UPDATE test SET
Clan =
CASE
WHEN id = '4' THEN '3'
WHEN Clan = 3 AND ClanRank = '6' THEN '-1'
ELSE Clan
END,
ClanRank =
CASE
WHEN id = '4' THEN '6'
WHEN Clan = '-1' AND ClanRank = '6' THEN '-1'
ELSE ClanRank
END;
Речь о игровом сервере, и там это имеет значение.
Вот есть такие два рабочие запроса:
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? Возможно ли это вообще?
Как не пытался добавить, выдает ошибку о неверном синтаксисе.