【发布时间】:2020-10-25 04:06:51
【问题描述】:
我正在开发一个投票/竞赛系统(PHP 和 SQL),用户需要在该系统中选择他们最喜欢的 5 个候选人。他们最喜欢的一号得到 5 分,他们最喜欢的二号得到 4 分,以此类推。
投票示例:
C = 候选人
C_3 5分 C_1 4 分 C_5 3分 C_2 2 分 C_4 1分所有投票都将存储在 MySQL 表中,如 sow:
ID 5_POINTS 4_POINTS 3_POINTS 2_POINTS 1_POINTS 1 C_4 C_2 C_1 C_5 C_3 2 C_5 C_3 C_2 C_4 C_1 3 C_4 C_1 C_3 C_5 C_2 4 C_1 C_4 C_2 C_3 C_5以上投票的排名应该是:
1. 候选人 4 - 16 分 2. 候选人 1 - 13 分 3. 候选人 2 - 11 分 4. 候选人 3+5 - 10 分如何获得像上面这样的查询输出? 我尝试了多种东西,但没有任何效果。如果有人能指出我正确的方向,那就太好了......
【问题讨论】:
-
说到候选人,这是一个将database normalization 转换为更易于使用的关系形式的候选人。
-
我会更改表格的架构,将候选人和用户置于投票/给分关系中。 IE。该表有三列,用户 ID、候选人 ID 和点数。那么你的问题可以通过一个简单的聚合来解决。
标签: mysql sql count counting points