2017-10-18 44 views
1

我有我的數據庫中下表:排序表,並相應地改變行列時,一個新的行插入

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 

回答

2

你不應該在數據庫中存儲ranks,因爲這是派生值。相反,使用

SELECT ... ORDER BY totalpoints DESC 

當您需要該數據時。這會讓你得分由高到低排序。

+0

確實是一個更好的方法。 – Tarun

+0

是的,你是對的。我把它變得更加複雜,刪除行列將解決我的問題。謝謝您的幫助。 –

0
SELECT id, 
    userid, 
    totalpoints 
    row_number() OVER (ORDER BY totalpoints) ranks 
    FROM users 

您可以使用此sql查詢來獲取輸出。

相關問題