我正在创建一个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服务器版本,以便使用正确的语法 在第7行附近'(ORDER BY qa)AS Number FROM users ORDER BY id'
答案 0 :(得分:1)
您可以使用此构造获得相同的结果:
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';