在 MYSQL 查询中显示行号

Posted

技术标签:

【中文标题】在 MYSQL 查询中显示行号【英文标题】:Display Row Number in MYSQL query 【发布时间】:2014-02-14 06:59:00 【问题描述】:

我有这个 sql 查询:

SET @row_num=0; 
SELECT @row_num:=@row_num+1 as 'Num', book_title, author_name
FROM books

当我在 phpmyadmin 中测试这个查询时,它完美地显示了结果,但是当我在 Pentaho 用户控制台中测试它时,它显示错误。

谁能告诉我我的查询有什么问题?有没有其他方法可以修复它,以便在 Pentaho 中完美显示结果?

【问题讨论】:

***.com/questions/431053/… 【参考方案1】:

试试这个代码。

SET @row_number:=0;
SELECT @row_number:=@row_number+1 AS row_number,book_title, author_name FROM books;

也许对你有帮助。

【讨论】:

【参考方案2】:

尝试构建单个查询,如下所示:

SELECT
    @row_num := @row_num + 1 as 'Num',
    book_title,
    author_name
FROM
    books JOIN (SELECT @row_num := 0 FROM DUAL) as sub;

目前的问题(我猜),你有两个陈述而不是一个:

SET @row_num=0;
-- ^ statement #1

SELECT @row_num:=@row_num+1 as 'Num', book_title, author_name
FROM books;
-- ^ statement #2

所以试着把它们混合成一个陈述,就像我上面提到的那样。对于 mysql,这是一种合法的语法。

【讨论】:

我尝试像你展示的那样构建,但它不仅在 Pentaho 中而且在 phpmyadmin 中都显示错误。 @user3106393 你能提供一个错误描述/错误信息吗? 它说我的 'sub' 附近的 sql 语法有错误; @user3106393 更新了查询。现在就试试。是的,您使用的是什么 MySQL 服务器版本? 当我测试您更新的查询时,它会在两个平台(PHPMYADMIN 和 pentaho)中显示结果,但 row_num 结果是错误的。第一行显示为 1,但第二行是 3。我希望它显示为 1,2,3....我使用 MySQL 版本 5

以上是关于在 MYSQL 查询中显示行号的主要内容,如果未能解决你的问题,请参考以下文章

在选择查询中显示行号

在SSMS查询分析器中显示行号

如何在 Access 查询中显示行号,如 SQL 中的 ROW_NUMBER

Mysql显示行号

mysql 显示每条记录行号

linuxvim显示行号,linux vim设置行号