我正在使用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”的顺序?
谢谢!
答案 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]);
}