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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值