php– 如何将排名中的下一行获取到“最后一个id的排名”?

php– 如何将排名中的下一行获取到“最后一个id的排名”?,第1张

概述创建表格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); 询问SELECT id, percent, FIND_I

创建表格

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);

询问

SELECT ID,percent,FIND_IN_SET( percent,(SELECT GROUP_CONCAT( percentORDER BY percent DESC ) FROM goal_implement )) AS rank FROM goal_implement ORDER BY ID DESC

结果

ID  percent rank6   20      35   50      14   40      23   20      32   15      51   10      6

我不知道如何获取最后一个ID下一行的行(rank)
例如:最后一个ID的排名是3!

想要结果

ID  percent rank4   40      2
最佳答案要解决您的问题,我们有2种语言选项:

> PHP很容易 – >不好玩.
> MysqL – >你已经使用MysqL完成了部分工作,所以我就这样完成了.

sqlfiddle:Demo

脚步 :

>获取最后一个ID的等级获取所有百分比的字符串

SELECT FIND_IN_SET( percent,(SELECT GROUP_CONCAT( percent ORDER BY percent DESC )                       FROM goal_implement )) - 1 into @next_rankFROM goal_implement ORDER BY ID DESCliMIT 1;SELECT GROUP_CONCAT( percent ORDER BY percent DESC ) FROM goal_implement into @str_rank;

这段代码将为您提供:

@next_rank       @str_rank   2          50,40,20,15,10

让我们开始有趣(pbm起步 – Kappa):MysqL中没有任何explode()函数.

>在@str_rank中获取与@next_rank相关的百分比

我们用本机功能做的最好的是:

> SELECT SUBSTRING_INDEX(@str_rank,’,@ next_rank);
>结果:50,40

但我们只有’40’

– >让我们找到/创建一个函数来提取1到-1位置之间的字符串(大到Arman P.)

CREATE FUNCTION SPliT_STRING(str VARCHAR(255),delim VARCHAR(12),pos INT)RETURNS VARCHAR(255)RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(str,delim,pos),LENGTH(SUBSTRING_INDEX(str,pos-1)) + 1),'');

.
SELECT SPliT_STRING(@str_rank,@ next_rank)到@next_percentage;

这将在@next_percentage中存储’40’

结果:(最后)

SELECT *,@next_rank as rankFROM goal_implement WHERE percent = @next_percentage;

输出:

ID  percent     rank4     40         2

PHP版本:

$Array_test假定您的查询返回的数组

输出:

Array([0] => 4[1] => 40[2] => 2)

资源 :
Stackoverflow : Equivalent of explode 总结

以上是内存溢出为你收集整理的php – 如何将排名中的下一行获取到“最后一个id的排名”?全部内容,希望文章能够帮你解决php – 如何将排名中的下一行获取到“最后一个id的排名”?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)