我有一个users
表,它有一个名为money_sent
的列。我想按照money_sent
的降序排列这张表,然后找出具体用户的“等级”。MySQL:获取特定行的行号(排名)
例如,只有111人花的钱比用户12392,所以他们会排名112
我怎么能查询这个?
我有一个users
表,它有一个名为money_sent
的列。我想按照money_sent
的降序排列这张表,然后找出具体用户的“等级”。MySQL:获取特定行的行号(排名)
例如,只有111人花的钱比用户12392,所以他们会排名112
我怎么能查询这个?
如何:
SELECT count(*) FROM users WHERE money_sent < (
SELECT money_sent FROM users WHERE user = 'joe'
);
SELECT Row,user, money_sent
FROM (SELECT @row := @row + 1 AS Row, user, money_sent
FROM table1 order by money_sent desc)
As derived1
如果你也想与该用户的排名相处了用户的行,你可以使用这样的事情:
SELECT u1.*, COUNT(u2.user)
FROM users u1
LEFT OUTER JOIN users as u2 ON (u1.money_sent < u2.money_sent)
GROUP BY u1.user;
太好了!一个简单而有效的想法! – 2013-09-03 14:26:53