#mysql #triggers #ranking
#mysql #триггеры #Рейтинг
Вопрос:
Я создаю базу данных с таблицей «Team» для некоторых команд NFL, и я присвоил им всем рейтинг (стоящий в NFL), атрибут называется «Ranking».
Я хочу создать триггер таким образом, чтобы при обновлении рейтинга все остальные обновлялись соответствующим образом.
Однако я не могу найти способ перебирать таблицу. Например, предположим, что команда с 5-м рангом переходит на 3-й ранг, как мне сделать так, чтобы 3-й ранг стал 4-м, а затем 4 стал 5-м?
Если вам нужна дополнительная информация, не стесняйтесь спрашивать, я предоставлю ее как можно скорее.
Ответ №1:
Если вы знаете идентификатор команды для обновления (назовем его 42) и старый и новый ранг (старый: 5, новый: 3), то это не так уж сложно:
UPDATE Team SET rank=rank 1 WHERE rank BETWEEN 3 AND 5;
UPDATE Team SET rank=3 WHERE id=42;
Комментарии:
1. Да, я буду знать идентификатор, который необходимо обновить. Я думаю, это сработает, позвольте мне проверить, и я свяжусь с вами. Спасибо.
2. Это сработало! Большое вам спасибо, в моем учебнике никогда не упоминалась команда BETWEEN, поэтому я не знал, что делать, или даже искать онлайн.
3. Вы можете заменить
BETWEEN ... AND ...
наrank >= 3 AND rank <= 5