将Mysql查询转换为Laravel
我想将mysql查询转换为laravel查询 MySQL:将Mysql查询转换为Laravel,mysql,laravel,Mysql,Laravel,我想将mysql查询转换为laravel查询 MySQL: select product_id as urun from product_features where feature_id = 58 or feature_id = 100 or (feature_id = 52 or feature_id = 48 or feature_id = 53) group by product_id having(count(product_id)
select product_id as urun from product_features
where feature_id = 58
or feature_id = 100
or (feature_id = 52 or feature_id = 48 or feature_id = 53)
group by product_id having(count(product_id)>2)
编辑:我不能将“或”表达式括在括号中
编辑:我不能将“或”表达式括在括号中
当然可以。:-)
你想看的是Laravel的功能
$query->orWhere(function($query) {
$query->where('foo', 'bar')
->orWhere('foo', 'not-bar');
});
我解决了这个问题
$query = DB::table('product_features')->where('feature_id', 52)->orWhere('feature_id', 48)->orWhere('feature_id', 53)->
orWhere('feature_id', 100)->orWhere('feature_id', 58)->
select('product_id')->groupBy('product_id')->havingRaw("count(product_id) > 2")->get();
您是否正确设置了模型和关系?可能会有所帮助。。。非常感谢。但是我不能把“或”表达式括在括号里。此外,当您单击创建此帖子时,按钮上显示“提问”。“我想要”是什么时候开始的问题?我们将帮助您修复bug,而不仅仅是完全为您完成工作。你做了什么研究?你试过什么代码?你面临什么问题?请阅读以获取关于如何提出有用问题的进一步指导。这是一篇没有以最佳方式表达的简单帖子,当然应该进行编辑,但见鬼,没有理由淘汰新用户。虽然这在您的特定情况下有效,但不会产生括号,这将在更复杂的查询中导致问题。请参阅我的答案,了解您如何处理查询的附加部分。我将按照您所说的做。非常感谢。