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