我有这个SQL查询:
SET @row_num=0;
SELECT @row_num:=@row_num+1 as 'Num', book_title, author_name
FROM books
当我在phpmyadmin中测试此查询时,它会完美地显示结果,但是当我在Pentaho用户控制台中测试它时,它会显示错误。
有谁能告诉我我的查询有什么问题?有没有其他方法可以修复它,以便在Pentaho中完美展示结果?
答案 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来说,这是一种合法的语法。