【发布时间】:2022-11-23 16:54:53
【问题描述】:
我试图通过投票获得排名和相同排名的数量,但不幸的是没有成功。
Here my table structure:
| ID| user_id | votes |
| --| ------- | ----- |
| 1 | D10 | 15 |
| 2 | D5 | 9 |
| 3 | D20 | 9 |
| 4 | D23 | 7 |
| 5 | D35 | 3 |
| 6 | D65 | 2 |
我需要根据投票的用户排名,参考上表我需要排名为:
| user_id | Rank|
| ------- | ----|
| D10 | 1 |
| D5 | 2 |
| D20 | 2 |
| D23 | 3 |
| D35 | 4 |
| D65 | 5 |
我还需要等级数,指的是我需要的以上等级:
Rank 1 = 1
Rank 2 = 2
Rank 3 = 1
Rank 4 = 1
rank 5 = 1
我试图获得排名:
SELECT user_id, votes, FIND_IN_SET( votes, (
SELECT GROUP_CONCAT( DISTINCT votes
ORDER BY votes DESC ) FROM table)
) AS rank
FROM votes
上面的查询我尝试参考this answer来获得排名,但我收到错误:
#1064 - 您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解要使用的正确语法 近 '( 投票,(SELECT GROUP_CONCAT( DISTINCT 投票 ORDER BY 投票 DESC )
我需要使用 PHP 和 MySQL 获得所需的结果。
【问题讨论】: