laravel 查询生成器或内部 where

laravel query builder or inside where

我有以下查询,我想知道这在 laravel 的查询生成器中是否可行:

SELECT * FROM table WHERE (column = value OR column = value2) AND column2 LIKE '%value3%'

您可以根据自己的需求进行查询

       DB::table('table_name')
      ->where('column', 'value1')
      ->orWhere('column', 'value2')
      ->where('column2', 'like', '%value3%');

您的查询应如下所示:

DB::table('table')
  ->where(function($q) use ($value, $value2) {
      $q->where('column', $value)
        ->orWhere('column', $value2);
  })
  ->where('column2', 'like', '%'.%value3.'%')
  ->get();

如果您有多个值,可以将它们放入一个简单的数组中并使用 whereIn():

DB::table('table')
  ->whereIn('column', $valuesArray)
  ->where('column2', 'like', '%'.%value3.'%')
  ->get();

你可以在 where for ex 中使用闭包

\DB::table('table_name')
 ->where(function($q){
       $q->where('column', 'value1')
         ->orWhere('column', 'value2');
  })
  ->where('column2', 'LIKE', '%value3%');

在此处查看https://laravel.com/docs/5.3/queries#parameter-grouping