Lumen 的 And Where 和 Where 条件如何处理?
Posted
技术标签:
【中文标题】Lumen 的 And Where 和 Where 条件如何处理?【英文标题】:How to handle And Where and Or Where conditions in Lumen? 【发布时间】: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();
但是这个查询没有返回预期的结果。
知道我的查询有什么问题吗?
【问题讨论】:
【参考方案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();
【讨论】:
以上是关于Lumen 的 And Where 和 Where 条件如何处理?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 雄辩的 SQL 查询与 OR 和 AND 与 where 子句
Laravel Eloquent Query 使用 WHERE 和 OR AND OR?
Laravel Eloquent Query 使用 WHERE 和 OR AND OR?