【发布时间】:2016-02-18 20:10:32
【问题描述】:
假设我有两个如下表:
user_id
1
2
3
post_id user_id
1 2
2 3
3 2
第一个表包含所有用户信息,第二个表是用户发布的列表。
通过这些表格,我想对发布最多帖子的人进行排名。为此,我可以使用以下 sql
select user.user_id from user
left join post on user.user_id=post.user_id
order by count(post.post_id)
这会给我
user_id
2
3
1
,但是如果我只想要一个用户的排名怎么办?换句话说,我想编写一个 sql 语句,返回给定 user_id 用户所在的位置。例如,如果我的 user_id 为 2,我希望 1 作为输出,如果我有 user_id 3,我希望 2 作为输出,如果我有 user_id 1,我希望 3 作为输出。
这可能吗,还是我必须选择整个表并在 php 中执行一个 while 循环,直到我点击用户并计算上面的行数?
【问题讨论】:
标签: php mysql sql select sql-order-by