Php 获取“;最后一个id的排名”;?
需要帮助 Mysql查询:Php 获取“;最后一个id的排名”;?,php,Php,需要帮助 Mysql查询: CREATE TABLE goal_implement( id INT, percent INT ); INSERT INTO goal_implement VALUES (1,10), (2,15), (3,20), (4,40), (5,50), (6,20); 我的PHP代码-此代码显示以下结果表 <?php $query2 = "SELECT _id, percent, FIND_IN_SET( percent, ( SE
CREATE TABLE goal_implement( id INT, percent INT );
INSERT INTO goal_implement VALUES
(1,10),
(2,15),
(3,20),
(4,40),
(5,50),
(6,20);
我的PHP代码-此代码显示以下结果表
<?php
$query2 = "SELECT _id, percent, FIND_IN_SET( percent, (
SELECT GROUP_CONCAT( percent
ORDER BY percent DESC )
FROM goal_implement )
) AS rank
FROM goal_implement
ORDER BY id DESC
";
我不知道如何获取最后一个id上的下一行(秩),例如:最后一个id的秩是3!我想要下面的结果
使用PHP所需的结果:
4 40 2
既然您使用的是
mysql\u fetch\u array()
,为什么不使用它的索引呢
$row['rank'][$incrementHere]
试试这个:
我想我们可以使用具有
子句来过滤数据
$query="SELECT id, percent, FIND_IN_SET( percent, (
SELECT GROUP_CONCAT( percent
ORDER BY percent DESC )
FROM goal_implement )
) AS rank
FROM goal_implement
HAVING id >".$last_id_rank."
ORDER BY id ASC limit 1";
无法理解短语“最后一个id的等级”,也看不到逻辑。为什么期望的结果是id=4行?@KoalaYeung-最后一个id(6)->秩(3)…我想显示秩(2)…的id。。。。“排名中的下一位”排名是唯一的吗?会有重复的排名吗?如果是平局。。然后是重复的。。。正如你在上面看到的:@rank 3有tie,,,,但在tie的bcoz中没有排名4..所以如果最后一个id排名是4,php将显示2行,对吗?谢谢伙计。。。它起作用了!!一些问题:如果要显示的行是平局,该怎么办;然后,两个并列的行将显示。。。如何只显示TIE中的一行,这是我前面问题的目的。根据你的回答,我假设在平局时应该显示多行。您可以简单地将最后一个foreach更改为仅显示一行。这样做应该很容易。
$row['rank'][$incrementHere]
$query="SELECT id, percent, FIND_IN_SET( percent, (
SELECT GROUP_CONCAT( percent
ORDER BY percent DESC )
FROM goal_implement )
) AS rank
FROM goal_implement
HAVING id >".$last_id_rank."
ORDER BY id ASC limit 1";