使用OR运算符时如何使用advanced where子句 [英] How to use advanced where clause while using OR operators

查看:109
本文介绍了使用OR运算符时如何使用advanced where子句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何生成一个查询,显示user_id 1谁是俱乐部的成员,以及足球或网球或板球的对象。

How would I produce a query that displays user_id 1 whos a member of the club and subjects that are either football or tennis or cricket.

id|user_id|member|football|tennis|cricket
1 | 1     |Yes   | 1      | NULL | NULL
2 | 1     |Yes   | NULL   | NULL | NULL
3 | 2     |Yes   | NULL   | 1    | NULL
4 | 3     |Yes   | 1      | 1    | NULL
5 | 1     |No    | NULL   | 1    | NULL
6 | 1     |Yes   | NULL   | 1    | 1

所以基本上我希望生成的行是:

So basically I would like the resulting rows to be:

id|user_id|member|football|tennis|cricket
1 | 1     |Yes   | 1      | NULL | NULL
6 | 1     |Yes   | NULL   | 1    | 1

到目前为止我已经有了:

So far I have this:

$user = Model::where(function ($query) {
    $query->where('cricket', 1)
          ->orWhere('tennis', 1);
          ->orWhere('football', 1);
        })->where(function ($query) {
    $query->where('user_id', '=', 1)
          ->Where('member', '=', 'Yes');
     });


推荐答案

啊,你加入了高级在哪里用户 - 欢迎!

Ah, you've joined the ranks of Advanced Where users -- welcome!

$user = Model::
    ->where('user_id', 1)
    ->where('member', 'Yes')
    ->where(function($query) {
        $query
            ->where('cricket', 1)
            ->orWhere('tennis', 1);
            ->orWhere('football', 1);
    })
    ->select(['id', 'user_id', 'member', 'football', 'tennis', 'cricket'])
    ->get()
;

这篇关于使用OR运算符时如何使用advanced where子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆