thinkphp5.0 如何 使用or 来查询数据呢?
元素模板为您解答
有几种方法可以参考
方法1:whereOr方法
使用whereOr方法进行OR查询:
Db::table('think_user') ->where('name','like','%thinkphp') ->whereOr('title','like','%thinkphp') ->find();
如果有多个也可以这样写
$map1 = [ ['name', 'like', 'thinkphp%'], ['title', 'like', '%thinkphp'], ]; $map2 = [ ['name', 'like', 'kancloud%'], ['title', 'like', '%kancloud'], ]; Db::table('think_user') ->whereOr([ $map1, $map2 ]) ->select();
方法2:使用name|title
多字段相同条件的OR查询可以简化为如下方式:
Db::table('think_user')->where('name|title','like','%thinkphp') ->find();
方法3:使用or
可以在where里面使用or来区分
可以在where里面使用or来区分
$where = [ 'feed_uid' => [ 'eq' , 5] , 'status' => [ [ 'eq' , 1] , [ 'eq' , 2 ] , [ 'eq' , 3 ] , 'or' ] , ]; $value = DealSpace::where($where)->count(); 最终的查询条件为
where feed_uid=5 and (status=1 or status =2 or status =3 )