通过sql实现模糊搜索,并且按匹配度从高到低排序
select distinct name,age from (
(如果需要多表一起查询排序的话在当前地方使用 union all )
select id,name,age from student where name like '%搜索词%'
) as aa
order by (
case when aa.name='搜索词' then 1
when aa.name like '%搜索词%' then 2 else 0 end
) asc,
(select LENGTH(aa.name) - LENGTH(REPLACE(aa.name,'搜索词',''))) desc ;