【发布时间】:2018-04-02 19:03:06
【问题描述】:
我如何通过JOOQ 使用@variables?
(或者是否有更简单的可能性来显示行号?-请注意,我需要将所选数据插入另一个表,并且 row_number 应始终从 0 开始!)
SET @row_number = 0;
SELECT
(@row_number:=@row_number + 1) AS NUM, FIRST_NAME, LAST_NAME
FROM
AUTHOR
LIMIT 5;
这就是我认为JOOQcode 的样子...
Field<Integer> num = DSL.field("@row_number:=@row_number +1", Integer.class);
DSLContext create = DSL.using(connection, dialect);
create.select(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME, num)
.from(AUTHOR)
.limit(5)
.fetch();
我需要执行那个吗
SET @row_number = 0;
用普通的JDBC ?
我在 StackOverflow 上找到了关于变量和 JOOQ 的东西 - how can we have variable in jooq
编辑:我进行了更多调查,并了解到这个“解决方案”的结果可能会在未来的版本中发生变化。我考虑将其更改为创建一个具有 pk 标识(从 0 开始)的临时表,然后我得到相同的结果,但没有设置和更新用户变量。
【问题讨论】: