gpt4 book ai didi

java - OrmLite:在 WHERE NOT 周围和/或条件下构建

转载 作者:太空狗 更新时间:2023-10-29 14:58:04 25 4
gpt4 key购买 nike

我想在 OrmLite 中表达以下 SQL 查询:

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

这里的问题是在非操作中换行和条件。

  • 我的第一个假设是写:

    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) )
  • 最后我尝试了:

    queryBuilder.where()
    .not(
    where.eq(DbProperties.COLUMN_NAME_GROUP_ID, item.groupId)
    .and().eq(DbProperties.COLUMN_NAME_TASK_ID, item.taskId)
    );

    结果:

    IllegalArgumentException: NOT operation can only work with comparison SQL clauses

我也知道方法

and(int numClause) 
or(int numClause)

但是OrmLite不提供

not(int numClause).

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

最佳答案

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);

关于java - OrmLite:在 WHERE NOT 周围和/或条件下构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29588479/

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