php - 如何处理流明中的 And Where 和 Or Where 条件?

标签 php mysql laravel laravel-5 lumen

我有这个问题:

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();

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

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

最佳答案

试试下面的代码。

$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();

关于php - 如何处理流明中的 And Where 和 Or Where 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32730726/

相关文章:

php - 在 php 中,你如何记录错误但不向用户显示它们

php - 语法错误 : '' string literal contains an unescaped line break

mysql - 在虚拟化 Windows 2003 x64 服务器上使用 ASP 连接到 MySQL 数据库

php - 如何解决 laravel 迁移错误 "General error: 1005 Can' t 创建表”

javascript - 无法使用jquery交换复选框上按钮的属性

php - Cakephp - 如何加密然后解密正在存储和从数据库检索的数据

PHP - 从 rgb 获取颜色名称

php - Zend Framework 2 中与 DB 的动态连接

mysql - 如何创建页面来编辑数据库

php - 避免在 Controller 上使用 Laravel facade