thinkphp开发笔记

Thinkphp3 条件查询 where or and 同时使用 复合查询

where or 查询

开发过程中经常会遇到查询条件and 和or都同时使用的情况,Thinkphp中本来就支持这个查询的,不一定非得自己写sql语句,使用复合查询即可: 三、复合查询 复合查询相当于封装了一个新的查询条件,然后并入原来的查询条件之中,所以可以完成比较复杂的查询条件组装。 例如: 代码有点乱码  就是 $map[‘_complex’]= $where

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

查询条件是 (id>1)AND( (namelike’%thinkphp%’)OR(titlelike’%thinkphp%’) ) 复合查询使用了_complex作为子查询条件来定义,配合之前的查询方式,可以非常灵活的制定更加复杂的查询条件。 很多查询方式可以相互转换,例如上面的查询条件可以改成: $where[‘id’] = array(‘gt’,1); $where[‘_string’] = ‘ (name like “%thinkphp%”) OR ( title like “%thinkphp”) ‘; 最后生成的SQL语句是一致的。

where or 查询 或

关键词 _logic _complex _string、_complex、_query 等等

$where['name'] = array('like', '%'.$name.'%');
$where['card'] = array('like','%'.$card.'%');
$where['_logic'] = 'or';
$map['_complex'] = $where;

_logic _complex 关键词

$map['_logic']='or';
$map['_complex']=$condition;

like 查询

数组的key是字段名 第一个元素是like 第二个元素是%keyword%

$where['field_name']=array('like', '%thinkphp%');