好吧,假设我们有 4 列和 3 行数据。
|user_id|pick_1|pick_2|pick_3|
-------------------------------
|fred |C++ |java | php |
------------------------------
|eric |java |C++ | php |
------------------------------
|sam | C++ | php | java |
------------------------------
所以现在,用户正在输入他们最喜欢的语言。第一个选择 (pick_1) 将是最喜欢的编程语言,第二个选择 (pick_2) 将是第二个最喜欢的编程语言,依此类推。
我怎样才能以某种方式组织它,以便我可以根据编程语言的列来给出分值。所以也许pick_1可以给3分,pick_2可以给2分,pick_3可以给1分。
所以打分时,C++ 8分,java 6分,php 4分。
这样我就可以给出一个总体排名,说明什么是更受欢迎的编程语言。像这样
|rank|language|points|
----------------------
| 1 | C++ | 8 |
----------------------
| 2 | java | 6 |
----------------------
| 3 | php | 4 |
----------------------
它甚至不需要积分系统,我只是想不出另一种方法来按照喜欢到不喜欢的等级对语言进行排名。因此,如果有另一种方法可以产生相同的结果,请告诉我。否则我怎么能做到这一点。最好只在 MySql 中。我目前正在使用 PHP。
感谢阅读。
最佳答案
你需要一个更简单的结构
User_ID | Pick | Points
Fred c++ 3
Fred php 2
Fred java 1
这样你就可以做一个简单的sum(points) group by pick
关于php - 有没有办法根据它们属于哪一列来对 MySql 中的值进行排名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18629865/