Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
如何在mysql中获取行号?_Mysql_Sql_Database - Fatal编程技术网

如何在mysql中获取行号?

如何在mysql中获取行号?,mysql,sql,database,Mysql,Sql,Database,我正在制作一个跟踪应用程序,我想向用户显示他/她在哪个地方。为此,我考虑按“totalkm”desc进行排序,然后获取行号。问题是我不知道怎么做,因为我对数据库世界还相当陌生 我试过这样的方法: WITH mytable AS { SET @row_number = 0; SELECT (@row_number := @row_number +1) AS num, user,totalkm FROM profile ORDER BY totalkm DESC ; } SE

我正在制作一个跟踪应用程序,我想向用户显示他/她在哪个地方。为此,我考虑按“totalkm”desc进行排序,然后获取行号。问题是我不知道怎么做,因为我对数据库世界还相当陌生

我试过这样的方法:

WITH mytable AS {
    SET @row_number = 0; 
    SELECT (@row_number := @row_number +1) AS num, user,totalkm 
FROM profile ORDER BY  totalkm DESC ; } 
SELECT num
     FROM  mytable WHERE user = "bogdan9832";
但我得到了一个错误:

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用“mytable AS”附近的正确语法{ 在第1行设置@row_number=0


据我所知,mysql中不支持WITH。有人能给我一个替代方案吗?

对于相同的查询,您必须使用以下查询:-

首先将变量声明为:-

SET @row_number = 0; 
然后使用此查询:-

SELECT (@row_number:= @row_number + 1) AS ROW_NUMBER, OTHER_COLS
FROM YOUR_TABLE;
选择num、user、totalkm 从(

挑选( @行号:=@行号+1 )作为num、user、totalkm 从侧面 按总公里数下单 )作为一个
其中user=“bogdan9832”

使用子查询,但仅使用单个SQL语句:-

SELECT num
FROM
(
    SELECT (@row_number := @row_number +1) AS num, user, totalkm 
    FROM
    (
        SELECT banner.*
        FROM profile
        ORDER BY  totalkm DESC
    ) profile
    CROSS JOIN (SELECT @row_number := 0) sub0
) sub0
WHERE user = "bogdan9832"

你必须使用变量。看一看