SQL 模糊查询后按匹配度排序 CASE WHEN THEN
表如下:
SELECT * FROM "table1" where name like '%玉米%'
很明显这个会返回所有的行,因为每行都满足条件
若我想在模糊查询后,进行排序,完全匹配的放在最前面,其余的放后面,可以使用case when then
如:
SELECT * FROM "table1" WHERE name LIKE '%玉米%'
ORDER BY (
CASE
WHEN name='玉米' THEN 1
WHEN name like '玉米%' THEN 2
WHEN name like '%玉米%' THEN 3
WHEN name like '%玉米' THEN 4
ELSE 5
END
)
顺序是:完全匹配>开头匹配>中间匹配>最后匹配
else后面的数字代表剩余的情况则按ELSE后的数字顺序排,5>4,所以剩余的情况会排在最后
查询结果如图:
假设表里有多个字段,同时模糊查询多个字段,但是字段之间也有优先级排序,
比如name>nickname>code,然后再按完全匹配>开头匹配>中间匹配>最后匹配的顺序排
表如下:
那么我可以这样,sql语句如下:
SELECT * FROM "table1" WHERE name LIKE '%yumi%'
OR nickname LIKE '%yumi%'
OR code LIKE '%yumi%'ORDER BY (
CASE
WHEN name='yumi' THEN 1
WHEN name like 'yumi%' THEN 2
WHEN name like '%yumi%' THEN 3
WHEN name like '%yumi' THEN 4WHEN nickname='yumi' THEN 5
WHEN nickname like 'yumi%' THEN 6
WHEN nickname like '%yumi%' THEN 7
WHEN nickname like '%yumi' THEN 8WHEN code='yumi' THEN 9
WHEN code like 'yumi%' THEN 10
WHEN code like '%yumi%' THEN 11
WHEN code like '%yumi' THEN 12ELSE 13
END
)
如图:
这个表格的数据不是十分贴切,但是大致是这样意思
SQL 模糊查询后按匹配度排序 CASE WHEN THEN相关推荐
- MySQL模糊查询 结果按匹配度 排序
我们在使用 MySQL 进行模糊查询的时候,受到默认排序的影响,我们会发现与查询关键字相似的记录有时候并没有排到最前面. 如 : CREATE TABLE user(id BIGINT(11) AUT ...
- MySQL 关键字模糊匹配按照匹配度排序
MySQL 关键字模糊匹配,并按照匹配度排序. 方式一.按照关键字搜索,然后根据关键字所占比例排序 SELECTdrug_name,pinyin FROMtbl_drug WHEREpinyin LI ...
- 【转载】SQL 模糊查询
SQL 模糊查询 在进行数据库查询时,有完整查询和模糊查询之分. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: ...
- Javaweb15==mysql+mybatis+servlet+axios+fasetjson+vue+elementUI前后端分离,实现列表后端分页、模糊查询后分页、新增、单一/批量删除、修改
难点:模糊查询后再次分页,并可以选择页数. 最终环境配置: maven3.8:依赖包管理 IDEA2021+JDK8+mysql connector java5+Mysql5+mybatis3.5:从 ...
- mysql模糊查询实例_Mysql实例sql模糊查询实例详解
<Mysql实例sql模糊查询实例详解>要点: 本文介绍了Mysql实例sql模糊查询实例详解,希望对您有用.如果有疑问,可以联系我们. 导读:常用的模糊查询语句:select 字段 fr ...
- SQL模糊查询学习心得
SQL模糊查询学习心得 在进行数据库查询时,有完整查询和模糊查询之分. 1. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四 ...
- SQL模糊查询特殊符号应用及详细案例说明
SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下: 1.LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden). 2.LIKE'%inger' 将 ...
- SQL 模糊查询LIKE字符串匹配
SQL模糊查询,使用like比较字,详解加例子 1.LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden). 2.LIKE'%inger' 将搜索以字母 inger 结尾的 ...
- sql模糊查询及通配符使用
sql模糊查询 SQL查询中可以使用where条件中的=,<,> 等符合进行条件精确过滤,但是无法模糊搜索 因此可以使用like语句进行某个字段的模糊搜索 例如: 查询 name字段中包含 ...
最新文章
- 【硬件基础】振荡(时钟)周期、状态周期、机械周期、指令周期
- Android控件点击圆形阴影反馈解决方案
- SpringMVC学习(二)——SpringMVC架构及组件(及其运行原理)
- C#的静态方法与静态成员(转)
- oracle中的listener.ora和tnsnames.ora
- 机器学习中的矩阵向量求导(四) 矩阵向量求导链式法则
- 腾讯web前端招聘条件汇总
- pycharm无缘无故打开Nosetest
- spring 多数据源- 原理
- Web开发者必备:Web应用检查清单
- NHibernate和 FluentNHibernate
- 万能转换器boost::lexical_cast
- 由0.1+0.2-0.3不等于0说起
- 国外卫星地图mapbox的基本操作
- Linux下使用FDDB 测试MTCNN人脸检测模型生成 ROC 曲线
- 漫谈手游商业游戏前端框架
- 可编辑的jquery表格插件
- 读研攻略(11)—十分钟学会简历撰写,两千字无废话
- 在谷歌下面打开之后显示金山毒霸页面
- 【RocketMQ】Send [1] times, still failed以及No route info of this topic问题排查思路总结