使用squiggle-sql用OR子句构建动态sql

时间:2011-04-04 18:31:15

标签: java sql

我想使用squiggle-sql api使用OR条件动态构建Select fields和Where子句。 请以两个以上的字段为例。

Select field1,filed2,filed3,field4,..... 
from t1,t2,t3 
where t1.field1 = t2.field1 and t1.field1 = t3.field1 

where t1.field=? OR t2.field3=? OR t3.field2=?

请建议。

2 个答案:

答案 0 :(得分:1)

我刚刚发现了Squiggle。它似乎与jOOQ(我是开发人员)非常相似。在jOOQ中,你可以写(我确定Squiggle提供类似的功能)

List<Field<?>> fields = new ArrayList<Field<?>>();
fields.add(field1);
fields.add(field2);
// ... add more fields here

Condition condition = T1.field.equal(...);
condition = condition.or(T2.field3.equal(...));
condition = condition.or(T3.field2.equal(...));
// ... connect more conditions here

DSL.using(configuration)
   .select(fields)
   .from(t1, t2, t3)
   .where(t1.field1.equal(t2.field1))
   .and(t2.field1.equal(t3.field1))
   .and(condition);

有关详细信息,请参阅http://www.jooq.org

答案 1 :(得分:0)

同一WHERE的两个SELECT会产生错误。你是说这个吗?

Select field1,filed2,filed3,field4,..... 
from t1,t2,t3 
where t1.field1 = t2.field1 and t1.field1 = t3.field1 

AND (t1.field=? OR t2.field3=? OR t3.field2=?)