我创建了一个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/