mysql不用变量怎么实现行号_mysql 实现行号的方法

MYSQL目前不支持行号功能,如果想按某字段进行排序,然后得到排序号,很麻烦,要想实现这种功能,网上的答案五花八门,经过几次实验,得出如下一条SQL文就能简单实现此功能,现共享一下。

表 a:

UID Money 2 444 1 222 3 555 4 6666

想要以Money排序取得排行号:SQL文如下:

Select UID,(@rowNum:=@rowNum+1) as rowNo

From a,

(Select (@rowNum :=0) ) b

Order by a.Money Desc

输入结果如下:

UID rowNo 4 1 3 2 2 3 1 4

但是在创建视图的时候,上面的方法是行不通的,需要进行联合查询才能实现。

CREATE

VIEW `lxybook`.`x_fighting_view`

AS

SELECT

*

,(SELECT COUNT(*) FROM `lxybook`.`x_read_log` WHERE `fighting`>=a.`fighting`) AS ranking

, `fighting`

FROM

`lxybook`.`x_read_log` a WHERE DATE_FORMAT(create_time,'%m-%d-%Y')=DATE_FORMAT(NOW(),'%m-%d-%Y') ORDER BY fighting DESC;

更多请看:http://blog.csdn.net/ACMAIN_CHM/article/details/4095531

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值