我的数据库中有以下表格:
id userid totalpoints ranks
1 142 50 2
2 143 60 1
3 144 40 3
如果我想插入新行,请选择
4 145 55
现在如何插入该行并根据使用mysqli和php的总点数相应地更改排名?
为了获得以下输出:
id userid totalpoints ranks
2 143 60 1
4 145 55 2
1 142 50 3
3 144 40 4
答案 0 :(得分:2)
您不应将ranks
存储在数据库中,因为这是派生值。相反,使用
SELECT ... ORDER BY totalpoints DESC
何时需要这些数据。这将为您提供从高到低的点数排序。
答案 1 :(得分:0)
SELECT id,
userid,
totalpoints
row_number() OVER (ORDER BY totalpoints) ranks
FROM users
您可以使用此sql查询来获取输出。