【问题标题】:Convert SQL to Laravel Query Builder with complex AND OR使用复杂的 AND OR 将 SQL 转换为 Laravel 查询生成器
【发布时间】:2015-12-23 23:47:30
【问题描述】:

我有一个这样的查询-

SELECT * FROM subscribers_lists
  WHERE Country='Germany'
  AND (City='Berlin' OR name LIKE '%Mün%');

我想将其转换为 Laravel 查询构建器的查询。所以,我所做的是-

DB::table('Customers')
    ->where('subscribers_lists.Country', '=', $user_country)
    ->or_where('subscribers_lists.City', '=', $user_city)
    ->or_where('subscribers_lists.name', 'like', '%' . $searchParameter . '%');

但它并不完美。有什么建议吗?

感谢您的帮助。

【问题讨论】:

    标签: mysql laravel laravel-4 laravel-5 query-builder


    【解决方案1】:

    您可以使用闭包来创建复杂的部分。

    DB::table('subscribers_lists')
        ->where('subscribers_lists.Country', '=', $user_country)
        ->where(function($query) use ($user_city, $searchParameter) {
            $query->where('subscribers_lists.City', '=', $user_city)
                  ->orWhere('subscribers_lists.name', 'like', '%' . $searchParameter . '%');
        });
    

    您可以在文档here中阅读有关高级查询的更多信息

    【讨论】:

      猜你喜欢
      • 2019-10-14
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 2021-04-30
      相关资源
      最近更新 更多