Php 如何从@curRank获得排名
想申请一个排名职位,可以用@curRank吗 我创建了一个带有Php 如何从@curRank获得排名,php,mysql,sql,rank,Php,Mysql,Sql,Rank,想申请一个排名职位,可以用@curRank吗 我创建了一个带有 SELECT `item`, (`totalrate` / `nrrates`) AS `rank`, @curRank := @curRank + 1 AS `ranking` FROM `rtgitems`, (SELECT @curRank := 0) r WHERE item REGEXP 'Total' ORDER BY (`totalrate` / `nrrates`) DES
SELECT `item`, (`totalrate` / `nrrates`) AS `rank`, @curRank := @curRank
+ 1 AS `ranking` FROM `rtgitems`, (SELECT
@curRank := 0) r WHERE item
REGEXP 'Total'
ORDER BY (`totalrate` / `nrrates`) DESC
我有一张桌子
item rank ranking
Karla 9.5 1
Kelly 9.3 2
Arian 9.1429 3
在凯利页面中,我想调出她的排名
SELECT `item`, (`totalrate` / `nrrates`)
AS `rank`, @curRank := @curRank + 1 AS `ranking`
FROM `rtgitems`,
(SELECT @curRank := 0) r WHERE item REGEXP 'kelly'
ORDER BY (`totalrate` / `nrrates`) DESC LIMIT 10
echo "<td align='center' width='250'>" . $row['ranking'] . "</td>";
选择'item',('totalrate`/'nRates`)
作为“排名”,@curRank:=@curRank+1作为“排名”
从“rtgitems”,
(选择@curRank:=0)r,其中项目REGEXP'kelly'
订单依据(`totalrate`/`nrrates`)描述限制10
“回声”$第[‘排名’]行。"";
但是它只给了我一个1而不是2,你可以把
WHERE
子句从排名计算结果中移出
示例:
SELECT * FROM (
SELECT
`item`, (`totalrate` / `nrrates`) AS `rank`,
@curRank := @curRank + 1 AS `ranking`
FROM `rtgitems`, (SELECT @curRank := 0) r
ORDER BY (`totalrate` / `nrrates`) DESC
LIMIT 10
) results
WHERE item REGEXP 'kelly'
您可以使用以下任一解决方案:
SELECT *
FROM
(
SELECT item, (`totalrate` / `nrrates`) AS `rank`,
@curRank := @curRank + 1 AS ranking
FROM rtgitems p, (SELECT @curRank := 0) r
ORDER BY (`totalrate` / `nrrates`) DESC
) AS stat
WHERE ranking = 2;
限制偏移量
进行查询,因为它们已按顺序排列:告诉我们你是如何形成$row[排名]和kelly pageI是什么我称kelly排名为REGEXP'kelly'问题是排名是动态计算的,因此,当你添加REGEXP-kelly时,它只搜索一个人,因此排名为一。创建一列,用排名更新它,并运行触发器每天重新计算排名。谢谢,我通过使用一个别名解决了这个问题,该别名可以轻松地发布你的答案并接受它。是的,与别名一样
SELECT item, (`totalrate` / `nrrates`) AS `rank`
FROM rtgitems
ORDER BY (`totalrate` / `nrrates`) DESC
LIMIT 4, 1