一个常见的需求,在使用MySQL的条件下,分页显示+模糊查询

在这个情况下,排序变得十分关键

整理了一下一般情况下排序的原则:

模糊查询的关键字为“张三”为例

  1. 长度越短,排序越靠前,全匹配显示在最前面。比如:“张三” 就要在 “张三丰” 前面。
  2. 匹配的关键字,出现的越靠前,排序越靠前。比如:“我张三丰” 就要在 “我是张三” 前面。

 最后实现的排序结果例子:

1 张三
2 张三丰
3 1张三
4 张三er
5 so张三
6 我是张三
7 张三我认识
8 我张三他爹

 

 

 

 

 

 

 

 

 

在MySQL中可以通过 char_length函数 和 locate函数 实现功能

 代码如下:

1 select * from user where name like '%张三%' 
2 order by char_length(name) asc, locate('张三',name) asc limit 5,5;

 

posted on 2022-10-18 16:35  Lyphy  阅读(479)  评论(0)    收藏  举报