ThinkPHP 中 where条件 or,and 同时使用 ,用闭包实现
where方法和whereOr方法在复杂的查询条件中经常需要配合一起混合使用,下面举个例子:
$result = Db::table('think_user')->where(function ($query) { $query->where('id', 1)->whereor('id', 2); })->whereOr(function ($query) { $query->where('name', 'like', 'think')->whereOr('name', 'like', 'thinkphp'); })->select();
生成的sql语句类似于下面:
SELECT * FROM `think_user` WHERE ( `id` = 1 OR `id` = 2 ) OR ( `name` LIKE 'think' OR `name` LIKE 'thinkphp' )
看来看去,还是官方的好啊!!!
https://www.kancloud.cn/manual/thinkphp5/135181
下面才是关键啊:
function($query)use($whereor1,$whereor2,$whereor3)
使用参数,用use