在 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 查询中显示行号的主要内容,如果未能解决你的问题,请参考以下文章