ThinkPHP的复合查询

复合查询相当于封装了一个新的查询条件,然后并入原来的查询条件之中,所以可以完成比较复杂的查询条件组装。

例如查询name和title中有kw且id大于10的数据:

$where['name']  = array('like', '%kw%');
$where['title']  = array('like','%kw%');
$where['_logic'] = 'or';
$map['_complex'] = $where;
$map['id']  = array('gt',10);

相当于sql语句

( id > 10) AND ( ( name like '%kw%') OR ( title like '%kw%') )

其实,很多查询方式可以相互转换,例如上面的查询条件可以改成:

$where['id'] = array('gt',10);
$where['_string'] = ' (name like "%kw%")  OR ( title like "%kw") ';

复合查询相当于封装了一个新的查询条件,然后并入原来的查询条件之中,所以可以完成比较复杂的查询条件组装。


ThinkPHP的复合查询
https://github.13sai.com/2016/06/01/46/
作者
13sai
许可协议