使用Map方式查询和使用数组查询的效果是相同的,并且是可以互换的。 条件查询 在查询条件里面,如果仅仅使用 $map->put('name','thinkphp'); 查询条件应该是 name = 'thinkphp' 如果需要进行其它方式的条件判断,可以使用
$map->put('name',array('like','thinkphp%')); 这样,查询条件就变成 name like 'thinkphp%' $map->put('id',array('gt',100)); 查询条件 id >100 $map->put('id',array('in','1,3,8')); // 或者使用数组范围 $map->put('id',array('in',array(1,3,8)));
上面表示的查询条件都是 id in (1,3,8)
支持的查询表达式有 EQ|NEQ|GT|EGT|LT|ELT|LIKE|BETWEEN|IN|NOT IN
区间查询 ThinkPHP支持对某个字段的区间查询,例如:
$map->put('id',array(1,10)); // id >=1 and id<=10 $map->put('id',array('10','3','or')); //id >= 10 or id <=3 $map->put('id',array(array('neq',6),array('gt',3),'and')); // id != 6 and id > 3
$map->put('id',array('neq',1)); $map->put('name','ok'); // 现在的条件是 id !=1 and name like '%ok%' $map->put('_logic','or'); // 现在的条件变为 id !=1 or name like '%ok%'
ThinkPHP大多数情况使用的都是对象查询,因为充分利用了ORM查询语言,了解查询条件的定义对使用对象查询非常有帮助,对于复杂的查询,或者从安全方面考虑,通常我们可以使用HashMap对象或者索引数组来传递查询条件。查询条件可以用于find、findAll等所有有查询条件的方法,下面是几种查询条件的定义:普通查询:$condition = new HashMap(); //