java - 根据单个事务中的参数列表选择多行

标签 java sql jooq

我想根据单个查询(单个事务)中的参数列表从表中获取多个值。 请注意,我问的是如何在 JOOQ 中实现这一点。为了说清楚,我有这样的东西:

代码

List<Integer> id = new ArrayList<>();
id.add(1);
id.add(3);

数据库中的表

ID | Title |
------------
 1 |  one  |
 2 |  two  |
 3 | three |
 4 | four  | 

现在,根据 id 列表,我只想在单个事务中获取第一行和第三行。这有可能吗?

我已经尝试过类似的方法,但没有任何方法接受列表或任何集合作为参数。

dsl.select(Tables.TABLE.TITLE)
   .from(Tables.TABLE)
   .where(Tables.TABLE.ID.eq()) // no list argument

最佳答案

您不想使用 comparison predicate但是一个in predicate使用Field.in(Collection) :

dsl.select(Tables.TABLE.TITLE)
   .from(Tables.TABLE)
   .where(Tables.TABLE.ID.in(id))

或者直接使用Field.in(T...) :

dsl.select(Tables.TABLE.TITLE)
   .from(Tables.TABLE)
   .where(Tables.TABLE.ID.in(1, 3))

换句话说,这实际上并不是一个关于 jOOQ(或将 jOOQ 与事务结合使用)的问题,而是一个关于 SQL 的一般问题。

关于java - 根据单个事务中的参数列表选择多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25643981/

相关文章:

sql - begin_date加上360个月,如何通过lookup维度表准确获取end_date?

java - 扩展 JOOQ 记录

java - 使用模型 API 创建普通 JOOQ SQL 查询

java - 如何设置 JToggleButton 的切换状态?

java - 函数式编程将代码转换为声明式风格

java - 具有不同字母长度的替换密码

java - 有没有办法在没有 org.bson.types.ObjectId 的情况下使用 Mongo/Morphia ?

mysql - MySql 中的 While 循环

Web 服务中的 SQL 最佳实践

java - JOOQ如何自助加入