Laravel 5查询“类似”问题

Laravel 5查询“类似”问题,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,我有一个带有前缀列的特殊表。该列包含022021 etc数据。我有电话号码021627363021。如何使用LIKE关键字匹配列以获取行 $rate = Special::where('user_id',$user_id) ->where(DB::raw("prefix LIKE $number")) ->orWhere(DB::raw("prefix LIKE SUBSTR($number,1,-1)")) -

我有一个带有前缀列的特殊表。该列包含022021 etc数据。我有电话号码021627363021。如何使用LIKE关键字匹配列以获取行

$rate = Special::where('user_id',$user_id)
            ->where(DB::raw("prefix LIKE $number"))
            ->orWhere(DB::raw("prefix LIKE SUBSTR($number,1,-1)"))
            ->orWhere(DB::raw("prefix LIKE SUBSTR($number,1,-2)"))
            ->orWhere(DB::raw("prefix LIKE SUBSTR($number,1,-3)"))
            ->orWhere(DB::raw("prefix LIKE SUBSTR($number,1,-4)"))
            ->orWhere(DB::raw("prefix LIKE SUBSTR($number,1,-5)"))
            ->orWhere(DB::raw("prefix LIKE SUBSTR($number,1,-6)"))
            ->orWhere(DB::raw("prefix LIKE SUBSTR($number,1,-7)"))
            ->orWhere(DB::raw("prefix LIKE SUBSTR($number,1,-8)"))
            ->orWhere(DB::raw("prefix LIKE SUBSTR($number,1,-9)"))
            ->orWhere(DB::raw("prefix LIKE SUBSTR($number,1,-10)"))
            ->first();

但它返回NULL。问题在哪里?谢谢。

如果要匹配部分值,只需使用通配符,如:

$rate=Special::其中'user\u id',$user\u id ->其中'prefix','like','%%'$数字.“%” ->第一,; 这将在任何点匹配前缀内的字符串。如果要获取以数字开头的前缀值的结果,请使用:

->其中'prefix','like',$number.'% 或者,如果要匹配以该数字结尾的前缀值,请使用:

->其中'prefix','like','%%'$数字