我有一个包含列(用户名,点数)的数据库。我正在调用从该数据库返回一些字段以在程序中使用。我想拉:
我可以轻松地拉到前十名......
top_users = UserPoints.find(
:all,
:conditions => ['points > 0'],
:order => "points DESC",
:limit => 10)
使用find_by_username拉取用户名请求的特定条目也很容易,但我怎样才能确定该用户的排名?那么,你将如何找到上面的5个用户和5个特定用户以下的用户(假设用户不在前10名)?
谢谢!
-mark
答案 0 :(得分:1)
也许使用两个查询来做?
当前用户以上的用户:
UserPoints.all(:conditions => ['points > ?', user.points], :limit => 5, :order => 'points asc')
当前用户以下的用户:
UserPoints.all(:conditions => ['points < ?', user.points], :limit => 5, :order => 'points desc')
也许有一种方法可以使用单个查询来实现,我不是SQL专家,但这应该为您解决。