发布网友 发布时间:2022-04-06 07:02
共2个回答
懂视网 时间:2022-04-06 11:23
如图:
假设一个user表,此时需要根据number客户数量对用户进行排名。
于是,我们要对user表内的用户进行一个排名:
$sql = "SELECT p.name,p.number, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r, (SELECT * FROM ruser ORDER BY number DESC) AS p"
*注:*1、 SELECT @rownum := 0:表示对rownum赋初始值0
2、@rownum := @rownum + 1:表示对rownum加1,语句中会从1开始,每一行往下都自动加1
查询结果如下:
如图所示,上述代码会根据user表中的number从大到小进行排序。
如果需要查询用户小王的排名,就要根据他的openid来查询排名:
$sql = "SELECT b.openid,b.name,b.number,b.rownum FROM(SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r,(SELECT * FROM partneruser ORDER BY `number` DESC) AS t) AS b WHERE b.openid = "o4mxs5Tia6Ieayvxiebx8rTc1zO4" ";
查询结果如下:
热心网友 时间:2022-04-06 08:31
你要现成代码懒得写给你.我个人想到的一个方法,
你可以通过id查询toupiaos的值,然后再查询比这个id(比如id为4)的值小的值,再统计下有多少个?然后你就可以根据结果得出排名了.