【发布时间】:2017-04-17 09:14:24
【问题描述】:
我有以下查询,我想知道这在 laravel 的查询构建器中是否可行:
SELECT * FROM table WHERE (column = value OR column = value2) AND column2 LIKE '%value3%'
【问题讨论】:
标签: sql laravel laravel-5.3
我有以下查询,我想知道这在 laravel 的查询构建器中是否可行:
SELECT * FROM table WHERE (column = value OR column = value2) AND column2 LIKE '%value3%'
【问题讨论】:
标签: sql laravel laravel-5.3
您的查询应如下所示:
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
【讨论】:
您可以根据需要进行查询
DB::table('table_name')
->where('column', 'value1')
->orWhere('column', 'value2')
->where('column2', 'like', '%value3%');
【讨论】: