一个常见的需求,在使用MySQL的条件下,分页显示+模糊查询
在这个情况下,排序变得十分关键
整理了一下一般情况下排序的原则:
模糊查询的关键字为“张三”为例
- 长度越短,排序越靠前,全匹配显示在最前面。比如:“张三” 就要在 “张三丰” 前面。
- 匹配的关键字,出现的越靠前,排序越靠前。比如:“我张三丰” 就要在 “我是张三” 前面。
最后实现的排序结果例子:
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;
分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?