gpt4 book ai didi

java - JOOQ嵌套条件

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:19 25 4
gpt4 key购买 nike

你好,我想知道如何在 jooq 中写这样的东西

select * from table 
where ( ( a = query or b = query or a = query )
and ( e = query or g = query or z = query) )

我不知道如何在 jooq 中做嵌套条件。请帮忙。

最佳答案

您需要了解 API 的以下部分:

public interface Condition {
Condition and(Condition other);
Condition or(Condition other);
}

因此,任何Condition 都可以使用and()/or() 方法与其他Conditions 连接(和别的)。在你的情况下,你可以像这样轻松地形成你的条件:

Condition c1 = a.equal(query);
Condition c2 = b.equal(query);
Condition c3 = a.equal(query);

Condition d1 = e.equal(query);
Condition d2 = g.equal(query);
Condition d3 = z.equal(query);

现在可以这样连接这些条件:

c1.or(c2).or(c3).and(d1.or(d2).or(d3));

或者输入一条SQL语句:

create.select()
.from(table)
.where(c1.or(c2).or(c3)
.and(d1.or(d2).or(d3)));

当然,您不必将c[1-3], d[1-3] 条件分配给变量。您可以将所有内容内联到一个语句中:

create.select()
.from(table)
.where(a.equal(query).or(b.equal(query)).or(a.equal(query))
.and(e.equal(query).or(g.equal(query)).or(z.equal(query)));

您将在手册中找到更多信息:

https://www.jooq.org/doc/latest/manual/sql-building/conditional-expressions/

关于java - JOOQ嵌套条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11247797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com