Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JOOQ如何从表中选择最小“id”_Java_Sql_Jooq - Fatal编程技术网

Java JOOQ如何从表中选择最小“id”

Java JOOQ如何从表中选择最小“id”,java,sql,jooq,Java,Sql,Jooq,在mysql中,我想执行如下查询 SELECT MIN(id) FROM table; 我对JOOQ语法和聚合函数了解得越多,就越感到困惑 我以为这样会管用 select( EVENT.EVENTID , min() ).from( EVENT ).fetch(); or Result<Integer> er = context.select( EVENT.EVENTID.min()).fetch(); 我试着通过选择整个第一张唱片来解决这个问题 Result<EventR

在mysql中,我想执行如下查询

SELECT MIN(id) FROM table;
我对JOOQ语法和聚合函数了解得越多,就越感到困惑

我以为这样会管用

select( EVENT.EVENTID , min() ).from( EVENT ).fetch();
or
Result<Integer> er = context.select( EVENT.EVENTID.min()).fetch();
我试着通过选择整个第一张唱片来解决这个问题

Result<EventRecord> er2 = context.selectFrom(EVENT).orderBy(EVENT.EVENTID.asc()).limit(1).fetch();

如果结果的大小为0,则记录不存在,但当它不是0时,我会得到正确的记录。我想使用min函数,但语法不正确。

要在SQL中编写的查询如下:

从事件中选择MINevent.eventid 这就是你两次尝试都失败的原因

// 1. 在SQL中不能将单个列与聚合函数组合, //除非你按这些列分组 // 2. 您没有将任何cargument列传递给MIN函数 context.select EVENT.EVENTID,最小值为EVENT.fetch; // 3. 这没有指定任何FROM子句,因此您的数据库不知道是什么 //要从中选择MINeventid的表 context.select EVENT.EVENTID.min.fetch; 请注意,这些想法并不特定于jOOQ,它们通常与SQL相关。在使用jOOQ时,请始终考虑首先要表达的SQL语句,即我答案顶部的语句。因此,您的jOOQ声明将如下所示:

//MIN的后缀表示法 context.selectEVENT.EVENTID.min.fromEVENT.fetch; //MIN的前缀表示法,其中MIN是从 //org.jooq.impl.DSL context.selectminEVENT.EVENTID.fromEVENT.fetch;
fetchAny方法似乎将返回具有第一个/最低记录id的记录

EventRecord record = context.selectFrom(EVENT).fetchAny();

正如@LukasEder所提到的,有许多替代方法,他可能会慷慨大方,并跟进其中一些方法。感谢卢卡斯

再次感谢您的回复。我在一次尝试中使用了与后缀符号相同的语法,Result r5=context.select EVENT.EVENTID.min.fromEVENT.fetch;Intellij编译器在Integer下面加下划线,并抱怨类型参数“java.lang.Integer”不在其范围内;应该实现“org.jooq.Record”。将结果更改为结果将创建更多错误…从获取返回的类型是Result,但存在错误。如果你问一个关于堆栈溢出的新问题,我会更深入地解释。注释不太适合进一步解释……注意:min函数是通过以下方式导入的:import static org.jooq.impl.DSL.min;这可能取决于数据库和/或添加项目的顺序等。我不会依赖它。