在mysql查询中获取行的排名
我使用此查询根据每个姓名获得的投票为其分配排名,但返回错误: 1248-每个派生表都必须有自己的别名 这是我的密码:在mysql查询中获取行的排名,mysql,sql,rank,Mysql,Sql,Rank,我使用此查询根据每个姓名获得的投票为其分配排名,但返回错误: 1248-每个派生表都必须有自己的别名 这是我的密码: SELECT @rownum:=@rownum+1 AS rank, name, vote FROM table, (SELECT @rownum:=0) ORDER BY vote DESC 将查询修改为以下内容时:- SELECT @rownum:=@rownum+1 AS rank, name, vote FROM table ORDER BY vote DESC
SELECT @rownum:=@rownum+1 AS rank, name, vote
FROM table, (SELECT @rownum:=0) ORDER BY vote DESC
将查询修改为以下内容时:-
SELECT @rownum:=@rownum+1 AS rank, name, vote
FROM table ORDER BY vote DESC
我得到的查询的预期排名为NULL。任何帮助,如何获得排名第一
注意:我不寻求任何替代解决方案。只是尝试在查询本身中执行此操作。错误非常明显。每个派生表都必须有自己的别名。您需要为
(选择@rownum:=0)
设置别名,如下所示:
SELECT
@rownum := @rownum + 1 AS rank,
name,
vote
FROM table, (SELECT @rownum := 0) t --This what you were missing an alias
ORDER BY vote DESC