将Mysql查询转换为Laravel

时间:2018-08-10 11:48:06

标签: 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)>2)

编辑:我不能在括号中加上“或”表达式。

2 个答案:

答案 0 :(得分:2)

  

编辑:我不能在括号中加上“或”表达式。

可以。 :-)

您要看的是Laravel的parameter grouping功能。

$query->orWhere(function($query) {
    $query->where('foo', 'bar')
          ->orWhere('foo', 'not-bar');
});

答案 1 :(得分:0)

我解决了这个问题。

$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();