我想在OrmLite中表达以下SQL查询:
这里的问题是要在非操作中包装一个AND条件。
但是OrmLite没有提供
SELECT * FROM table WHERE NOT (number1 = 0 AND number2 = 0)
这里的问题是要在非操作中包装一个AND条件。
My first assumption was to write:
queryBuilder(). where().not() .eq("number1", 0) .and() .eq("number2", 0);
Result:
SELECT * FROM table WHERE ((NOT number1 = 0 ) AND number2 = 0)
Next approach:
queryBuilder(). where().not() .eq("number1", 0) .and().not() .eq("number2", 0);
Result:
SELECT * FROM table WHERE ((NOT number1 = 0 ) AND (NOT number2 = 0) )
Finally I tried:
queryBuilder.where() .not( where.eq(DbProperties.COLUMN_NAME_GROUP_ID, item.groupId) .and().eq(DbProperties.COLUMN_NAME_TASK_ID, item.taskId) );
Result:
IllegalArgumentException: NOT operation can only work with comparison SQL clauses
and(int numClause)
or(int numClause)
但是OrmLite没有提供
not(int numClause).
有没有其他方法可以构建查询?