thinkPHP如何实现复杂的SQL查询条件拼接?

已邀请:

zkbhj - 凯冰科技站长

赞同来自:

默认情况下,如果进行多字段查询,那么字段之间的默认逻辑关系是 逻辑与 AND,但是用下面的规则可以更改默认的逻辑判断,通过使用 _logic 定义查询逻辑:
$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR';
// 把查询条件传入查询方法
$User->where($condition)->select();


最后生成的SQL语句是
SELECT * FROM think_user WHERE `name`='thinkphp' OR `account`='thinkphp' 
如果有更为复杂的拼接,可以使用复合查询:
$where1=array(
'b'=>$keywords,
'c'=>$keywords,
'_logic'=>'and'
);
$where=array(
'a'=>$keywords,
'_complex'=>$where1,
'_logic'=>'or'
);
M('X')->where($where)->select();

要回复问题请先登录注册