2015-04-12 36 views
3

我想表达以下SQL查询中OrmLite:OrmLite:建筑物不在身边AND/OR条件

SELECT * FROM table WHERE NOT (number1 = 0 AND number2 = 0) 

这里的问题是在不运行包和AND条件。

  • 我的第一个假设是写:

    queryBuilder(). 
        where().not() 
         .eq("number1", 0) 
         .and() 
         .eq("number2", 0); 
    

    结果:

    SELECT * FROM table WHERE ((NOT number1 = 0) AND number2 = 0) 
    
  • 下一页做法:

    queryBuilder(). 
        where().not() 
         .eq("number1", 0) 
         .and().not() 
         .eq("number2", 0); 
    

    结果:

    SELECT * FROM table WHERE ((NOT number1 = 0) AND (NOT number2 = 0)) 
    
  • 最后我想:

    ​​

    结果:

    IllegalArgumentException: NOT operation can only work with comparison SQL clauses 
    

我也知道方法

and(int numClause) 
or(int numClause) 

但OrmLite不提供

not(int numClause). 

有人可以假设另一种方式来建立查询吗?

回答

0
SELECT * FROM table WHERE NOT (number1 = 0 AND number2 = 0) 

相当于

SELECT * FROM table WHERE ((NOT number1 = 0) OR (NOT number2 = 0)) 

其中,重新安排分组查询是:

queryBuilder(). 
    where() 
     .not().eq("number1", 0) 
     .or() 
     .not().eq("number2", 0);