laravel 模糊搜索匹配度高的结果排在前面

select * from table1 where column1 like '%abcde%' order by LENGTH(column1) - LENGTH('abcde')


这是sql 语句的写法

laravel orm不知道怎么写,只能用原生sql写了。

可以结合selectRaw,whereRaw / orWhereRaw,orderByRaw等方法写原生sql,详情见官方文档

这里orderby排序用原生sql就能查出来了

$query->orderByRaw("LENGTH(title) - LENGTH('$request->search')");

你可能感兴趣的:(laravel 模糊搜索匹配度高的结果排在前面)