首页 > 解决方案 > Laravel Eloquent 中的 HAVING() 未知列

问题描述

我有这个AS count使用雄辩的自我声明字段的工作代码

$delimeter = ' ';
$keywords = explode($delimeter, $keyword_search); 
$base_query = \DB::table('yeast_entire_search')->selectRaw('
        id,
        part_number, 
        part_name,
Round ((Char_length(Concat(
        LOWER(part_number), 
        LOWER(part_name)
    )) 
    - 
    Char_length(REPLACE ( Concat(
        LOWER(part_number), 
        LOWER(part_name)

    ), LOWER("'.$keyword_search.'"), ""))) / Char_length(LOWER("'.$keyword_search.'")))  AS count 
 ');
foreach($keywords as $keyword){
    $base_query->where(function($query) use ($keyword){
            $query->where('part_number', 'like', '%' . $keyword . '%') 
                ->orWhere('part_name', 'like', '%' . $keyword . '%');
    });
}
$data = $base_query->orderBy('count','DESC')->paginate(20);
return $data;

但是当我尝试havingRaw()像这样添加时

$data = $base_query->orderBy('count','DESC')->havingRaw(' count > 0 ')->paginate(20);
return $data;

但我收到这样的错误

在此处输入图像描述

标签: laraveleloquent

解决方案


尝试更改->havingRaw('count > 0')->having('count', '>' , 0)


推荐阅读