MySQL 基于like的模糊查询 并根据查询的匹配度排序

MySQL 基于like的模糊查询 并根据查询的匹配度排序

项目里有一个新的需求,在检索处原先只有根据各个字段的模糊查询,按照我项目中的例子是 中文名,英文名以及负责人。那么有时候在匹配的字段很多的情况下,如果只输入’ms’(数据库中刚好有这样的英文名) 这个正好匹配的字段原则上要显示在第一列,或者说匹配程度约好的要显示在越前面,而不仅仅是一连串的返回匹配到的结果而已。查询结果又10多页,那个提需求的老哥 我能感受到它的痛苦。

case 表达式

那么言归正传,主要就是对order by部分进行匹配度的计算,这里需要用到 case when 表达式 因为我需要匹配好几个字段。

在case 里面可以有多个when then else的三元表达式

匹配度的计算

这里首先将字段中我们待查询的子串变为空字符串,然后比较剩余字符串长度 与原来字符串长度的比值

length(REPLACE(cn.cn_name,‘ms’,’’))/length(cn.cn_name)

比如说 abcms 在经历 替换以后 变成 abc 比值为 3/5

以及 amsdsms 在经历 替换以后 变成 ads 比值为 3/7

可以发现如果结果越小,表示被替换的值就越多,也就是匹配度越高,那么按照order by的升序排列,就会在越前面被显示出来

SQL语句

select cn.cn_name,cn.en_name ,cn.maintainer

from code_repo.code_new as cn

where

cn.cn_name like "%ms%" or

cn.en_name like "%ms%" or

cn.maintainer like "%ms%"

order by

case

when cn.cn_name like "%ms%" then length(REPLACE(cn.cn_name,'ms',''))/length(cn.cn_name)

when cn.en_name like "%ms%" then length(REPLACE(cn.en_name,'ms',''))/length(cn.en_name)

when cn.maintainer like "%ms%" then length(REPLACE(cn.maintainer,'ms',''))/length(cn.maintainer)

end

结果如下图所示:

MySQL 基于like的模糊查询 并根据查询的匹配度排序相关教程

基于Airtest抖音养号源代码

基于Airtest抖音养号源代码 以前就做过Python做了点Ai和Sprider有点基础就学了学Airtest这个插件,没大规模应该自己玩一玩电音还可以,不用像AutoJs那样找不到了,我这个代码也算是我记录一下也算是给大家抛砖引玉。Airtest的核心是Python,Python就是个脚本

CentOS安装Mysql8.0

CentOS安装Mysql8.0 卸载CentOS 7自带的MariaDB 检查系统是否已经安装MariaDB,CentOS 7默认自带MariaDB,需要覆盖。 查看命令: rpm -qa | grep mariadb 出现如下界面,可以看到系统中自带的mariadb文件,执行删除命令删除掉MariaDB。 删除命令: yum -y rem

WordPress快速建站:(5)安装部署 - MySql8

WordPress快速建站:(5)安装部署 - MySql8 MySQL8安装 1. 到MySQL官网下载页面下载windows下的msi安装文件 2. 将下载好的msi文件拷贝到虚拟机,并双击安装 3. 选择 Developer Default 4. 依赖项检查忽略,点击Yes 5. 点击Execute执行安装 6. 配置向导, Next

基于springboot的mysql实现读写分离

基于springboot的mysql实现读写分离 开发者(KaiFaX) 面向全栈工程师的开发者 专注于前端、Java/Python/Go/PHP的技术社区 作者 |Yrion 来源 | https://www.cnblogs.com/wyq178/p/13352707.html 前言 : 首先思考一个问题:在高并发的场景中,关于数据库都有哪些

基于arduino设计的测温装置

基于arduino设计的测温装置 红外非接触式测温 嵌入式测温装置 一、产品简介 二、设备组成 三、设备的性能指标 四、模块连接 五、PC端准备 六、代码测试 嵌入式测温装置 ??MLX90614 是一款红外非接触式温度计,TO-39 金属封装里同时集成了红外感应热电堆探测器

【MySQL】查询sql的执行过程及MySQL架构分析

【MySQL】查询sql的执行过程及MySQL架构分析 MySQL的发展历史和版本分支: 时间 里程碑 1996 年 MySQL1.0 发布。它的历史可以追溯到 1979 年,作者 Monty 用 BASIC 设计的一个报表工具。 1996 年 10 月 3.11.1 发布。MySQL 没有 2.x 版本。 2000 年 ISAM 升级

Welcome to MySQL Workbench:MySQL NULL 值处理

Welcome to MySQL Workbench:MySQL NULL 值处理 MySQL NULL 值处理: 为了处理这种情况,MySQL提供了三大运算符: IS NULL: 当列的值是 NULL,此运算符返回 true。 IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。 =: 比较操作符(不同于 = 运算符),当比

Mysql:在limit前面加distinct

Mysql:在limit前面加distinct 今天刷牛客,遇到一道sql题是这样的 获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salaryCREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NU

mysql like 匹配排序,MySQL 基于like的模糊查询 并根据查询的匹配度排序相关推荐

  1. 基于隐马尔科夫模型的道路匹配

    随着导航定位.移动互联网等技术的快速发展,手机.车载定位装置等设备都可以进行地理空间数据采集.这些不同类型的地理空间数据往往能反映出某种规律.以时空轨迹为例,这些新形式的泛在地理空间数据,能够反映个体 ...

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

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

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

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

  4. MySQL 索引 :哈希索引、B+树索引、最左前缀匹配规则、全文索引

    文章目录 索引 什么是索引 索引优缺点与适用场景 常见的索引 哈希索引 自适应哈希索引 B+树索引 聚集索引 非聚集索引 使用方法 联合索引 最左前缀匹配规则 覆盖索引 全文索引 使用方法 索引 什么 ...

  5. MySQL基础——数据库和SQL概述\MySQL基本使用\DQL语言学习\条件查询\排序查询\常见函数\分组查询\连接查询\子查询\分页查询\联合查询

    本文详细讲解了MySQL中DQL语言,也就是数据查询语句的使用.全文3w余字,是对学习MySQL知识的整理总结,因为篇幅较长,MySQL基础知识余下部分发表在余下博客中 DML语言学习\插入数据\删除 ...

  6. mysql如何按行数匹配,mysql-将许多行与SQL查询中的许多行匹配,并找到百分位数匹配?...

    目前,我正在建立一个招聘平台.雇主可以发布工作并接收申请.雇主可以设置求职者必须匹配的许多技能要求.求职者还可以增加他们拥有的许多技能. 我想找出的是,每个求职者技能中有多少与每个工作的owner_r ...

  7. mysql 轨迹数据存储_基于Tablestore实现海量运动轨迹数据存储-阿里云开发者社区...

    前言 现在越来越多的人都开始关心自己的运动数据,比如每日的计步.跑步里程.骑行里程等.运动APP与运动类的穿戴设备借助传感器.地图.GPS定位等技术,收集好运动数据以后,通过与互联网社交功能结合,产生 ...

  8. MySQL 排序、分页查询、聚合查询

    文章目录 1. 排序 2. 分页查询 3. 聚合查询 3.1 分组聚合 GROUP BY 练习 LeetCode 176. 第二高的薪水 练习 LeetCode 177. 第N高的薪水 练习 Leet ...

  9. 【MySQL】【翻译】 基于GTID追踪的自适应路由查询

    GTID consistent reads 基于GTID的一致性读 作者:René Cannaò ProxySQL的作者 翻译:张锐志 小记:原文的标题和部分段落都有些混乱,已经尽量按作者的想法意义. ...

  10. mysql 轨迹数据存储_基于Tablestore实现海量运动轨迹数据存储

    前言 现在越来越多的人都开始关心自己的运动数据,比如每日的计步.跑步里程.骑行里程等.运动APP与运动类的穿戴设备借助传感器.地图.GPS定位等技术,收集好运动数据以后,通过与互联网社交功能结合,产生 ...

最新文章

  1. 价值60W 的字节工牌,面试太卷了...
  2. EventBus3.0 List事件遇到的坑
  3. java实现可视化报表_如何在Power BI中记录报表可视化?
  4. messagebox 全部使用_商业篇 | 使用python开发性格分析工具卖钱
  5. 素材诊断分析助手_资深优化师告诉你广告投放素材都在哪找?(国内篇)
  6. 打破校史,发学校首篇Science的博士小姐姐,近日再发Nature!破解百年谜题
  7. python + Eclipse + Pydev 安装
  8. 【统计学】皮尔森相关系数公式理解
  9. 现场知识竞赛如何用手机做抢答器
  10. hp/博科光纤交换机配置小记
  11. java中执行ddl语句,DDL(数据定义语言)
  12. 小鸟云服务器:网络基本概念服务、协议、进程、端口之间的关系
  13. 9月20-21日,十位阿里技术大牛带你玩转大流量与高并发
  14. 如何学会自主学习?(精品)
  15. 《2040大预言:高科技引擎与社会新秩序》——第2章 数字化概览2.1 一生中永不停息的视频日记...
  16. 树莓派科学小实验4B--07_继电器
  17. android系统手机能看到照片,安卓怎么恢复手机照片?原来可以这样做
  18. SAP BW QUERY VARIABLES (BW增强变量)
  19. 计算机考研408 - 操作系统 - 核心知识点总结 - 第一章操作系统概述(23考研408大纲)
  20. excel培训机构_中金中国企业跨境并购流程、重点问题和交易架构设计(内部培训)42页...

热门文章

  1. PhpQuery PHP操作HTML类,PHP操作XML类,PHP操作Dom类
  2. 【LeetCode-面试算法经典-Java实现】【012-Integer to Roman(数字转罗马字符)】
  3. CrossApp推出移动应用开发神器CrossApp Style
  4. [NOIP2016]回文日期
  5. ESP8266制作简单wifi风扇控制器
  6. Java小项目(三)---汽车租赁系统(面向对象)
  7. windows安装VS2015
  8. Netty权威指南电子版(不要积分点个赞就好)
  9. jtopo更改节点选中框的颜色
  10. 老男孩python课后作业_老男孩Python全栈学习 S9 日常作业 001