laravel 查询生成器或在哪里
Posted
技术标签:
【中文标题】laravel 查询生成器或在哪里【英文标题】:laravel query builder or inside where 【发布时间】:2017-04-17 09:14:24 【问题描述】:我有以下查询,我想知道这在 laravel 的查询构建器中是否可行:
SELECT * FROM table WHERE (column = value OR column = value2) AND column2 LIKE '%value3%'
【问题讨论】:
【参考方案1】:您的查询应如下所示:
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();
【讨论】:
【参考方案2】:你可以在 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
【讨论】:
【参考方案3】:您可以根据需要进行查询
DB::table('table_name')
->where('column', 'value1')
->orWhere('column', 'value2')
->where('column2', 'like', '%value3%');
【讨论】:
不会生成分组表达式,而是在不带括号的查询中添加或条件以上是关于laravel 查询生成器或在哪里的主要内容,如果未能解决你的问题,请参考以下文章