如何在 greenDAO 中使用 OR 查询?
How to use OR queries in greenDAO?
我有一个查询:
Select * from table where user = 'user1' or city = 'delhi';
我知道如何为单个用户执行此操作,但我不知道如何在以下查询中使用 or
。
dao.queryBuilder()
.where(UserDao.Properties.UserId.eq(userId1))
.list();
为了在 greenDAO 中使用 or
条件,您必须在 QueryBuilder 对象中使用 or
方法。
示例:
QueryBuilder<User> qb = dao.queryBuilder();
qb.where(UserDao.Properties.UserId.eq(userId1), qb.or(UserDao.Properties.City.eq("delhi")));
List<User> users = qb.list();
有关详细信息,请参阅 greenDAO 文档中的 "Queries" section。
试试这个:
QueryBuilder<User> qb = dao.queryBuilder();
qb.whereOr(UserDao.Properties.UserId.eq(userId1),
UserDao.Properties.City.eq("delhi"));
List<User> users = qb.list();
对于版本 3.2.+,这里是一个使用 Where()
和 WhereOr()
条件组合的示例。以下是对 select 所有项目的假设查询:
- 具有标签 'paint'、'emulsion'
- 属于特定类别
- 排除特定子类别
Where()
方法只取一个查询条件,WhereOr()
可以取多个查询条件(与Dao中的属性个数一样多Class),用逗号分隔
String catgId = "AB12545";
String excludeSubCatgId = "SAB09990";
DaoSession daoSession = ((App) getApplication()).getDaoSession();
List<Item> = daoSession.getItemDao().queryBuilder()
.where(ItemDao.Properties.CategoryId.eq(catgId))
.where(ItemDao.Properties.SubCategory.notEq(excludeSubCatgId))
.whereOr(ItemDao.Properties.ItemTagCloud.like("%paint%"),
ItemDao.Properties.ItemTagCloud.like("%emulsion%"))
.orderDesc(ItemDao.Properties.ItemPrice)
.list();
我有一个查询:
Select * from table where user = 'user1' or city = 'delhi';
我知道如何为单个用户执行此操作,但我不知道如何在以下查询中使用 or
。
dao.queryBuilder()
.where(UserDao.Properties.UserId.eq(userId1))
.list();
为了在 greenDAO 中使用 or
条件,您必须在 QueryBuilder 对象中使用 or
方法。
示例:
QueryBuilder<User> qb = dao.queryBuilder();
qb.where(UserDao.Properties.UserId.eq(userId1), qb.or(UserDao.Properties.City.eq("delhi")));
List<User> users = qb.list();
有关详细信息,请参阅 greenDAO 文档中的 "Queries" section。
试试这个:
QueryBuilder<User> qb = dao.queryBuilder();
qb.whereOr(UserDao.Properties.UserId.eq(userId1),
UserDao.Properties.City.eq("delhi"));
List<User> users = qb.list();
对于版本 3.2.+,这里是一个使用 Where()
和 WhereOr()
条件组合的示例。以下是对 select 所有项目的假设查询:
- 具有标签 'paint'、'emulsion'
- 属于特定类别
- 排除特定子类别
Where()
方法只取一个查询条件,WhereOr()
可以取多个查询条件(与Dao中的属性个数一样多Class),用逗号分隔
String catgId = "AB12545";
String excludeSubCatgId = "SAB09990";
DaoSession daoSession = ((App) getApplication()).getDaoSession();
List<Item> = daoSession.getItemDao().queryBuilder()
.where(ItemDao.Properties.CategoryId.eq(catgId))
.where(ItemDao.Properties.SubCategory.notEq(excludeSubCatgId))
.whereOr(ItemDao.Properties.ItemTagCloud.like("%paint%"),
ItemDao.Properties.ItemTagCloud.like("%emulsion%"))
.orderDesc(ItemDao.Properties.ItemPrice)
.list();