随笔 - 9,  文章 - 0,  评论 - 6,  阅读 - 4780

 一个常见的需求,在使用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   Lyphy  阅读(442)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示