Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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 rank—字段等于X的行号_Mysql - Fatal编程技术网

mysql rank—字段等于X的行号

mysql rank—字段等于X的行号,mysql,Mysql,这是我的mysql数据库: id、auth、name、points 我想得到的是建立一个等级。因此,按点对所有记录进行排序,并获得auth字段等于“1”的行数 我在stockoverflow档案馆、谷歌等网站上找过这个。但是,我没有找到我要找的东西。我试着自己做,但没有一个不适合我 有人能帮我吗?这将为您提供auth=1的记录的排名: SELECT * FROM ( SELECT id, auth, name, points, @rownum := @rownum + 1 AS rank

这是我的mysql数据库: id、auth、name、points

我想得到的是建立一个等级。因此,按点对所有记录进行排序,并获得auth字段等于“1”的行数

我在stockoverflow档案馆、谷歌等网站上找过这个。但是,我没有找到我要找的东西。我试着自己做,但没有一个不适合我


有人能帮我吗?

这将为您提供auth=1的记录的排名:

SELECT * FROM 
(
  SELECT id, auth, name, points, @rownum := @rownum + 1 AS rank
  FROM (
    SELECT id, auth, name, points
    FROM yourTable
    ORDER BY points DESC
    ) a
  JOIN (
    SELECT @rownum := 0
    ) r
  ) b
WHERE b.auth = 1;

从tablename(其中auth=1)中选择*有什么问题?没有问题,但是没有排名字段,我想通过查询自动执行。请注意,派生表内部的顺序不能保证结果对外部SELECT语句的顺序。查看另一个解决方案,其中变量以与order By相同的语句递增感谢您的帮助!
SELECT a.iterator, a.id, a.name, a.points
FROM (    
    SELECT @rank:=@rank+1 AS iterator, id, name, points, auth
    FROM table, (SELECT @rank:=0) tmp
    ORDER BY points DESC) a
WHERE a.auth = 1