Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql查询中获取行的排名_Mysql_Sql_Rank - Fatal编程技术网

在mysql查询中获取行的排名

在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

我使用此查询根据每个姓名获得的投票为其分配排名,但返回错误:

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
我得到的查询的预期排名为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