Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 模拟搜索并获取返回行的行号(从总数)_Php_Mysql_Sql_Logic - Fatal编程技术网

Php 模拟搜索并获取返回行的行号(从总数)

Php 模拟搜索并获取返回行的行号(从总数),php,mysql,sql,logic,Php,Mysql,Sql,Logic,我是MySQL的乞丐,已经为这个问题寻找了几个小时的解决方案。我找到了一些答案,但似乎无法实现 基本上,我想做的是: 我想找出一个给定国家的用户在按ID排序时,与来自同一国家的其他用户相比,他们的排名如何 例如: 乔的身份证是10号,来自美国 美国有100个用户 结果:乔排名第十 如何将其转换为MySQL查询 提前感谢。创建2个用户变量,例如running和previous,它获取以前的排名编号,并通过将当前值增加1相应地计算国家的排名编号 select u.id,u.country,u.ran

我是MySQL的乞丐,已经为这个问题寻找了几个小时的解决方案。我找到了一些答案,但似乎无法实现

基本上,我想做的是:

我想找出一个给定国家的用户在按ID排序时,与来自同一国家的其他用户相比,他们的排名如何

例如: 乔的身份证是10号,来自美国 美国有100个用户 结果:乔排名第十

如何将其转换为MySQL查询


提前感谢。

创建2个用户变量,例如running和previous,它获取以前的排名编号,并通过将当前值增加1相应地计算国家的排名编号

select u.id,u.country,u.rank 
from (
    select u1.id,u1.country,
        @running:=if(@previous=concat(u1.id,u1.country),@running,0) + 1 as rank,
        @previous:=concat(u1.id,u1.country) 
    from tablename u1
    order by concat(t.id,t.country) 
) u;

用表格替换tablename

用一些数据显示表格ID和排名是否相同?在我的表格中,我只有两列-ID和country@affaz是的,我想根据给定用户的ID获取其排名