表如下:

  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相关推荐

  1. MySQL模糊查询 结果按匹配度 排序

    我们在使用 MySQL 进行模糊查询的时候,受到默认排序的影响,我们会发现与查询关键字相似的记录有时候并没有排到最前面. 如 : CREATE TABLE user(id BIGINT(11) AUT ...

  2. MySQL 关键字模糊匹配按照匹配度排序

    MySQL 关键字模糊匹配,并按照匹配度排序. 方式一.按照关键字搜索,然后根据关键字所占比例排序 SELECTdrug_name,pinyin FROMtbl_drug WHEREpinyin LI ...

  3. 【转载】SQL 模糊查询

    SQL 模糊查询 在进行数据库查询时,有完整查询和模糊查询之分. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: ...

  4. Javaweb15==mysql+mybatis+servlet+axios+fasetjson+vue+elementUI前后端分离,实现列表后端分页、模糊查询后分页、新增、单一/批量删除、修改

    难点:模糊查询后再次分页,并可以选择页数. 最终环境配置: maven3.8:依赖包管理 IDEA2021+JDK8+mysql connector java5+Mysql5+mybatis3.5:从 ...

  5. mysql模糊查询实例_Mysql实例sql模糊查询实例详解

    <Mysql实例sql模糊查询实例详解>要点: 本文介绍了Mysql实例sql模糊查询实例详解,希望对您有用.如果有疑问,可以联系我们. 导读:常用的模糊查询语句:select 字段 fr ...

  6. SQL模糊查询学习心得

    SQL模糊查询学习心得 在进行数据库查询时,有完整查询和模糊查询之分. 1. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四 ...

  7. SQL模糊查询特殊符号应用及详细案例说明

    SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下:  1.LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden).  2.LIKE'%inger' 将 ...

  8. SQL 模糊查询LIKE字符串匹配

    SQL模糊查询,使用like比较字,详解加例子 1.LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden).  2.LIKE'%inger' 将搜索以字母 inger 结尾的 ...

  9. sql模糊查询及通配符使用

    sql模糊查询 SQL查询中可以使用where条件中的=,<,> 等符合进行条件精确过滤,但是无法模糊搜索 因此可以使用like语句进行某个字段的模糊搜索 例如: 查询 name字段中包含 ...

最新文章

  1. 【硬件基础】振荡(时钟)周期、状态周期、机械周期、指令周期
  2. Android控件点击圆形阴影反馈解决方案
  3. SpringMVC学习(二)——SpringMVC架构及组件(及其运行原理)
  4. C#的静态方法与静态成员(转)
  5. oracle中的listener.ora和tnsnames.ora
  6. 机器学习中的矩阵向量求导(四) 矩阵向量求导链式法则
  7. 腾讯web前端招聘条件汇总
  8. pycharm无缘无故打开Nosetest
  9. spring 多数据源- 原理
  10. Web开发者必备:Web应用检查清单
  11. NHibernate和 FluentNHibernate
  12. 万能转换器boost::lexical_cast
  13. 由0.1+0.2-0.3不等于0说起
  14. 国外卫星地图mapbox的基本操作
  15. Linux下使用FDDB 测试MTCNN人脸检测模型生成 ROC 曲线
  16. 漫谈手游商业游戏前端框架
  17. 可编辑的jquery表格插件
  18. 读研攻略(11)—十分钟学会简历撰写,两千字无废话
  19. 在谷歌下面打开之后显示金山毒霸页面
  20. 【RocketMQ】Send [1] times, still failed以及No route info of this topic问题排查思路总结

热门文章

  1. 理想边界尺寸怎么算_一台以加油发电的新能源汽车 理想ONE - 新闻详情
  2. QQ密码忘记不用急 QQ找回有方法(转)
  3. 戴尔4012管理地址
  4. 使用 React 为 Chimee 开发插件
  5. Jenkins进阶系列之——06FTP publisher plugin插件下载(支持绝对路径)
  6. 如何重建encrytion wallet in ORA-28374
  7. 微信5.0绑定银行卡教程
  8. “猜你喜欢”后台设计方案
  9. 神经网络中的Attention机制 pytorch 代码
  10. PVE安装openwrt后,pve无法联网