首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Laravel 4雄辩的查询使用WHERE with OR和OR?

Laravel 4雄辩的查询使用WHERE with OR和OR?
EN

Stack Overflow用户
提问于 2013-06-08 09:29:42
回答 11查看 430.7K关注 0票数 334

我怎么说WHERE (a = 1 OR b =1 ) AND (c = 1 OR d = 1)

对于更复杂的查询,我是否应该使用原始SQL?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2013-06-08 09:38:32

使用Logical Grouping (Laravel 7.x/4.2)。对于您的示例,应该是这样的:

代码语言:javascript
复制
Model::where(function ($query) {
    $query->where('a', '=', 1)
          ->orWhere('b', '=', 1);
})->where(function ($query) {
    $query->where('c', '=', 1)
          ->orWhere('d', '=', 1);
});
票数 550
EN

Stack Overflow用户

发布于 2014-03-04 21:31:56

如果你想在Laravel 4中使用a,b,c,d的参数

代码语言:javascript
复制
Model::where(function ($query) use ($a,$b) {
    $query->where('a', '=', $a)
          ->orWhere('b', '=', $b);
})
->where(function ($query) use ($c,$d) {
    $query->where('c', '=', $c)
          ->orWhere('d', '=', $d);
});
票数 109
EN

Stack Overflow用户

发布于 2015-04-01 22:07:51

如果你循环OR条件,你不需要第二个$查询-> where从其他帖子(实际上我不认为你一般需要,你可以在嵌套的where中使用orWhere,如果更容易)

代码语言:javascript
复制
$attributes = ['first'=>'a','second'=>'b'];

$query->where(function ($query) use ($attributes) 
{
    foreach ($attributes as $key=>value)
    {
        //you can use orWhere the first time, doesn't need to be ->where
        $query->orWhere($key,$value);
    }
});
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16995102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档