php - Laravel Eloquent - 如何对条件进行分组
问题描述
我正在使用以下雄辩的陈述
Title::where('word', 'lovers')->orWhere('word', 'lover')->where('domain', $resultFromFirstKeyword->domain)->get();
我可以通过 SQL 记录器看到产生以下 SQL
select * from `title` where `word` = 'lovers' or `word` = 'lover' and `domain` = 'www.texasbirdlovers.com'
但是我想生成的 SQL 是
select * from `title` where (`word` = 'lovers' or `word` = 'lover') and `domain` = 'www.texasbirdlovers.com'
我将如何实现这一目标?
解决方案
这应该有效:
Title::whereIn('word', ['lovers', 'lover'])
->where('domain', $resultFromFirstKeyword->domain)
->get();
但是,如果您想完全按照您所说的方式组合它们,请尝试以下操作:
Title::where(function($query) {
$query->where('word', 'lovers')
->orWhere('word', 'lover');
})
->where('domain', $resultFromFirstKeyword->domain)
->get();
推荐阅读
- sql - 如何使用 SQL Query 对表记录进行排序,父项后跟子项
- wordpress - 以 HTML CSS 设计的网站上的 Wordpress 插件
- python-3.x - Pandas:多列转置和求和
- swift - CoreData:NSFetchRequestResultType.dictionaryResultType 和 managedObjectResultType 之间的不同结果
- ios - 在 iOS13 的场景中添加新的 UIWindow
- json - 如何在颤振本地化中读取嵌套的 json?
- javascript - 密码的正则表达式,至少包含 1 个大小写字母、1 个数字和 1 个特殊字符,最小长度为 8
- angular - 如何将三元运算符结果的字符串放入角度
- json - 从 MongoDB 读取数据并在 Scala Spark 连接器中对多级 JSON 应用过滤器
- selenium - 发送密钥不起作用,正确的 xpath 和 id (Selenium)