Нет, триггер - плохой выбор.
Это было бы что-то вроде
CREATE TRIGGER updateRank AFTER UPDATE ON yourTable...
Так что он будет запускаться каждый раз, когда вы обновляете свой стол, независимо от того, обновляете ли вы xp вашего плеера или что-то еще.
Напишите хранимую процедуру, с помощью которой вы обновляете xp вашего игрока и в то же время проверяете, является ли рейтинг все еще правильным или должен быть обновлен до.
Или, может быть, вам даже не нужна хранимая процедура. Это не проверено, но также может работать:
UPDATE yourTable SET
xp = $theXPthePlayerEarnedWhilePlaying,
rank =
CASE WHEN $theXPthePlayerEarnedWhilePlaying BETWEEN 0 AND 299 THEN 'Jedi Initiate'
WHEN $theXPthePlayerEarnedWhilePlaying BETWEEN 300 AND 699 THEN 'Padawan'
/*...*/
ELSE 'unranked Player'
END
WHERE playerId = $yourPlayer;
РЕДАКТИРОВАТЬ: Это очень хороший учебник для хранимых процедур, если вы хотите узнать больше. Не пугайтесь, это не так уж и сложно.
http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx