【问题标题】:How to handle And Where and Or Where conditions in Lumen?Lumen 的 And Where 和 Where 条件如何处理?
【发布时间】:2015-12-20 05:58:30
【问题描述】:

我有这个问题:

SELECT * FROM users 
WHERE 
gender = "$gender" AND country = "$country" 
AND ((city = "$city" AND status = "1") 
OR (status IN(2,3)))";

如何在 Lumen 中编写上述查询?

到目前为止我尝试过的是:

$users = User::where('country', '=', $country)
             ->where('gender', '=', $gender)
             ->where(function ($users) {
                    $users->where('city', '=', '$city')
                          ->where('status', '=', "1");
             })
             ->whereIn('status', [2, 3])
             ->first();

但是这个查询没有返回预期的结果。

知道我的查询有什么问题吗?

【问题讨论】:

    标签: php mysql laravel laravel-5 lumen


    【解决方案1】:

    试试下面的代码。

    $users = User::where('country', '=', $country)
        ->where('gender', '=', $gender)
        ->where(function ($query) use ($city) {
            $query->where(function($query) use ($city) {
                $query->where('city', '=', '$city')
                      ->where('status', '=', "1");
            })->orWhereIn('status', [2, 3]);
        })->first();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-11
      • 2015-03-05
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 2013-07-15
      相关资源
      最近更新 更多