有一个积分表,积分从高往下排,如何取出其中的一个用户的排名,积分

kglay123 2015-04-09 05:04:56
sql语句是

select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分
from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time


我如何在这条sql语句的基础上,查询出用户的用户名,积分。

或者如何在php中获取一下?
...全文
231 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kglay123 2015-04-10
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
SELECT * FORM 
  (
    select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分
    from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time
  ) T
 WHERE username='XXX'
这种定义用户变量的写法还是很巧妙的
我看错了。。是我的自己的问题。。 sorry。。 3Q 谢谢了。
kglay123 2015-04-10
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
SELECT * FORM 
(
select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分
from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time
) T
WHERE username='XXX'


这种定义用户变量的写法还是很巧妙的



SELECT * From
(
select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分
from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time
) T
WHERE username=18511337033'


这么写 ,加上where条件就会报错,没有where条件 就正常。

下面这是错误信息。

[SQL] SELECT * From
(
select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分
from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time
) T
WHERE username=18511337033'

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 6


这是表结构
xuzuning 2015-04-09
  • 打赏
  • 举报
回复
SELECT * FORM 
  (
    select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分
    from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time
  ) T
 WHERE username='XXX'
这种定义用户变量的写法还是很巧妙的
傲雪星枫 2015-04-09
  • 打赏
  • 举报
回复
請給出表結構。
luozhongkai1991 2015-04-09
  • 打赏
  • 举报
回复
知道用户名么, 直接select 用户名,积分 from table where 用户名=用户名不就完事了么

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧