我有一张这样的桌子:
| ID | game | player | their_turn |
===================================
| 1 | 1 | 1 | 0 |
-----------------------------------
| 2 | 1 | 2 | 1 |
-----------------------------------
| 3 | 1 | 3 | 0 |
-----------------------------------
| 4 | 1 | 4 | 0 |
-----------------------------------
| 5 | 1 | 5 | 0 |
我的目标是选择,按 ID 排序,对于特定游戏,紧接在 their_turn 为 1 的玩家之后,当达到最大 ID 时循环回到最低/第一个 ID。
例如,如果现在轮到玩家 2,我希望它选择玩家 3。如果轮到玩家 5,我希望它选择玩家 1。当它是玩家 1 时,它会选择玩家 2。
选择所有行后,我总是可以在 PHP 中对此进行一些处理,但我想知道如何在 MySQL 中正确执行此操作。
更新:新表结构
我最终重组了我的桌子;their_turn 现在移动到单独的表中(不相关的列除外):
Players Rounds
| ID | game | | ID | game | player |
============= ======================
| 1 | 1 | | 1 | 1 | 1 |
| 2 | 1 | | 2 | 1 | 2 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
所以,同样的目标;选择排队的下一个玩家;要么是 ID 大于该游戏最新一轮玩家 ID 的人,要么是该游戏的最低玩家 ID。我从未在 MySQL 中使用过 IF 语句,我认为这是必要的,但我无法弄清楚如何去做。