在MYSQL查询中显示行号

时间:2014-02-14 06:59:01

标签: mysql phpmyadmin pentaho

我有这个SQL查询:

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

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

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

2 个答案:

答案 0 :(得分:3)

试试这段代码。

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

它可能对你有帮助。

答案 1 :(得分: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来说,这是一种合法的语法。