Android:SugarORM或条件

时间:2017-10-08 03:21:23

标签: android sugarorm

我正在使用SugarORM。

选择代码:

String action = "date_int ASC";

record_list = Select.from(Records_records.class).where(Condition.prop("category").eq("A")).orderBy(action).list(); 
record_list = Select.from(Records_records.class).where(Condition.prop("category").eq("B")).orderBy(action).list();

问题:

上面获得的列表是“仅A”类别或“仅B”类别。

从官方网站上,它只能为A和B生成AND条件 ,如下所示:

record_list = Select.from(Records_records.class).where(Condition.prop("category").eq("A"), Condition.prop("category").eq("B")).orderBy(action).list();

如何获得(A或B)类别的组合列表以及“date_int ASC”的顺序?

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以使用whereOr()

record_list = Select.from(Records_records.class).whereOr(Condition.prop("category").eq("A"), Condition.prop("category").eq("B")).orderBy(action).list();

where()使用的默认AND的OR对应。

没有记录,但您可以在source

中找到它
@Test
public void testWhereOr(){
    Select where = Select.from(TestRecord.class).whereOr(Condition.prop("test").eq("satya"));
    assertEquals("(test = ? )", where.getWhereCond());
    assertEquals(1, where.getArgs().length);
    assertEquals("satya", where.getArgs()[0]);

    where = Select.from(TestRecord.class).whereOr(Condition.prop("test").eq("satya"), Condition.prop("prop").eq(2));
    assertEquals("(test = ?  OR prop = ? )", where.getWhereCond());
    assertEquals(2, where.getArgs().length);
    assertEquals("satya", where.getArgs()[0]);
    assertEquals("2", where.getArgs()[1]);
}