Есть запрос:
INSERT INTO `DonateCoins` (`player`, `donateCoins`) VALUES ('test', '20202')
Как сделать, чтобы при выполнении данного запроса, если такой player присутствует в таблице, то к его количеству коинов добавлялось 20202?
В самой таблице есть player - test и donateCoins - 0
Ответ
Можно поступить следующим образом: индексируем столбец player уникальным индексом
ALTER TABLE
DonateCoins
ADD UNIQUE KEY
player (player);
Это не позволит вставлять в таблицу DonateCoins дублирующие записи. Вставку новых данных осуществляем INSERT-запросом с ON DUPLICATE KEY UPDATE, в которой прописываем логику обновления поля при обнаружении вставки записи с уже существующим игроком.
INSERT INTO
DonateCoins (`player`, `donateCoins`)
VALUES
('test', '20202')
ON DUPLICATE KEY UPDATE
donateCoins = donateCoins + VALUES(donateCoins);
В результате, если запись уже существует, donateCoins будет увеличиваться на 20202 (тип столбца должен быть числовым, а не текстовым).
Комментариев нет:
Отправить комментарий