我创建了一个android应用程序,我正在使用MySQL。
MySQL表看起来像
我想通过他的qa得到用户的等级,如果我想得到Kenig的等级,我会得到1,因为他有最多的qa(1060),如果我想得到Dyrus的等级,我会得到3,因为他有最低的qa等等。。
我在网上到处找了一个查询,结果是

SELECT ip,name,qa,ROW_NUMBER() over (ORDER BY qa) AS Number FROM users ORDER BY qa;

但是当我试着运行这条线路时,我得到了一个错误:
SQL语法中有错误;请查看手册
对应于MySQL服务器版本,以便使用正确的语法
接近'(按质量保证订购)作为第12行用户按id订购的编号

最佳答案

使用此构造可以得到相同的结果:

set @num=0;

select name, rank FROM (
  SELECT
    ip,
    name,
    qa,
    @num := @num + 1  as rank
  FROM (
    SELECT * FROM world.test ORDER BY qa DESC
  ) A
) B  WHERE name = 'Kenig';

关于android - ROW_NUMBER()的SQL语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34297194/

10-11 13:44