这是我的mysql DB: id,auth,name,points
我想要的是创建排名。因此,按点对所有记录进行排序,并获取 auth 字段等于“ 1 ”的行数
我在gooverflow档案中寻找这个,谷歌等。但是,我找不到我想要的东西。我试图自己做,但没有一个不适合我。
有人可以帮助我吗?
答案 0 :(得分:3)
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
答案 1 :(得分:2)
这应该给你带有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;