java - 如何在 JOOQ 中编写多字段“in”谓词?
问题描述
在 JOOQ 中,我可以编写如下 SQL 的代码吗?
我不知道如何编写in
具有多个字段的谓词。
select some_value
from t1
where (t1.id1, t1.id2) in ((1, 2), (1, 3), (2, 1))
解决方案
您正在寻找DSL.row()
构造函数。另见:
https ://www.jooq.org/doc/latest/manual/sql-building/conditional-expressions/in-predicate-degree-n
在你的情况下,写:
DSL.using(configuration)
.select(T1.SOME_VALUE)
.from(T1)
.where(row(T1.ID1, T1.ID2).in(row(1, 2), row(1, 3), row(2, 1)))
.fetch();
一如既往:
// This static import is implied
import static org.jooq.impl.DSL.*;
推荐阅读
- javascript - 在“ul”上,桌面垂直滚动有效,但移动设备的触摸滚动无效
- python - 加载 json 文件时出现 JSON 解码错误
- reactjs - 无需刷新页面即可更新嵌套数组(一对多关系)的状态
- r - R ggplot geom_boxplot 数据组和标签四分位数(铰链、晶须)
- c# - 使用正则表达式获取一些字符串
- sql - 根据sql(teradata)中另一列的条件分配列值
- python - 如何检查是否使用预期的对象调用方法
- c# - 如何使用 tsv c# 搜索文本的一部分?
- python - 从日期范围中排除特定日期 - Python
- jquery - SQL/jQuery 将不同的行值转换为列