如何使用greendao进行与条件复合查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用greendao进行与条件复合查询相关的知识,希望对你有一定的参考价值。

参考技术A public class DaoHelper /** * 按照LastName顺序排序 * @param firstname * @return */ public static List select(String firstname) returnuserDao.queryBuilder() .where(Properties.FirstName.eq(firstname)) .orderAsc(Properties.Last. 参考技术B 看了官方文档及源码,下面给出答案:
Query<User> query = userDao.queryBuilder().where(
Properties.FirstName.eq("Joe"), Properties.YearOfBirth.eq(1970)
).build();
where 方法在greenDao中有重载, 第二个参数是WhereCondition... 类型, 也就是说多个where条件只需要用逗号分开就行了

tp3.2 复合查询

复合查询相当于封装了一个查询条件,然后并入原来的查询条件之中    比如 or 与 and 都需要的场景下

$where[‘title‘]  = array(‘like‘, ‘%默认名称%‘);
$where[‘title‘]  = array(‘like‘,‘%thinkphp%‘);
$where[‘_logic‘] = ‘OR‘;
$map[‘_complex‘] = $where;   //
$map[‘type‘]  = array(‘EQ‘,1);

生成条件是

( type = 1) AND ( ( title like ‘%默认名称%‘) OR ( title like ‘%thinkphp%‘) )

另一种写法

$where[‘type‘] = array(‘EQ‘,1);
$where[‘_string‘] = ‘ (title like "%默认名称%")  OR ( title like "%thinkphp") ‘;

结果同上

注意:  tp3里 在写多where时 字符串条件只能写一个 ; 要结合数组格式条件;

以上是关于如何使用greendao进行与条件复合查询的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 GreenDAO 进行全选?

oracle中如何只查询一条复合条件的记录,即查到一条记录就返回

oracle中如何只查询一条复合条件的记录,即查到一条记录就返回

oracle中如何只查询一条复合条件的记录,即查到一条记录就返回?

如果顶点是在 scala gremline 中使用复合键创建的,如何使用 vertexId 进行查询

GreenDAO 真正简单的查询