mysql模糊匹配关键字_MySQL 关键字模糊匹配,并按照匹配度排序
MySQL 关键字模糊匹配,并按照匹配度排序。
方式一、按照关键字搜索,然后根据关键字所占比例排序
SELECT
drug_name,
pinyin
FROM
tbl_drug
WHERE
pinyin LIKE '%AM%'
ORDER BY
LENGTH(pinyin);
效果如下
方式二、将关键字开头记录排序在前
SELECT
drug_name,
pinyin
FROM
tbl_drug
WHERE
pinyin LIKE 'AM%'
UNION
SELECT
drug_name,
pinyin
FROM
tbl_drug
WHERE
pinyin LIKE '%AM%';
效果如下
方式三、将关键字开头排序在前,再根据匹配度排序记录
SELECT
drug_name,
pinyin
FROM
(SELECT
drug_name,
pinyin
FROM
tbl_drug
WHERE
pinyin LIKE 'AM%'
ORDER BY
LENGTH(pinyin)
LIMIT 999999) t1
UNION
SELECT
drug_name,
pinyin
FROM
(SELECT
drug_name,
pinyin
FROM
tbl_drug
WHERE
pinyin LIKE '%AM%'
ORDER BY
LENGTH(pinyin)
LIMIT 999999) t2
LIMIT 0,20;
结果如下,这块中文“()”所占长度较大。在此有一个问题,子查询的排序无效,如果子查询中order by 不带limit,会被优化器干掉
以上方式为网上整理总结,下面这个方式为个人改进
方式四、先根据关键字所在字段index排序,然后再根据匹配度排序
SELECT
drug_name,
pinyin
FROM
tbl_drug
WHERE
pinyin LIKE '%AM%'
ORDER BY
LENGTH(substring_index(pinyin,'AM',1)),
LENGTH(pinyin)
LIMIT 0,20
效果如下
延伸版:
SELECT
drug_name,
pinyin
FROM
tbl_drug
WHERE
LOCATE( "阿", pinyin ) > 0
OR LOCATE( "阿", drug_name ) > 0
ORDER BY
LOCATE( "阿", pinyin ),
LOCATE( "阿", drug_name ),
LENGTH( pinyin );
结果如下:
mysql模糊匹配关键字_MySQL 关键字模糊匹配,并按照匹配度排序相关推荐
- mysql查询结果升序_MySQL ORDER BY:对查询结果进行排序
在MySQL SELECT 语句中,ORDER BY 子句主要用来将结果集中的数据按照一定的顺序进行排序. 其语法格式为: ORDER BY { | | } [ASC|DESC] 语法说明如下. 1) ...
- mysql中version是关键字_mysql关键字
在今儿hibernate执行save方法的时候显示sql语法错误 Sql代码 You have an error in your SQL syntax; check the manual that c ...
- 判断mysql的关键字_MySQL关键字以及保留字
开发过程中可打开此页面,使用CTRL+F进行搜索,如有字段名与MySQL关键字或保留字相同,应尽量避免使用. 也可以用以下python程序判断单词是否为MySQL关键字或者保留字. import sy ...
- mysql数据库的关键字_Mysql关键字和保留字(注意)
SQLGrammarException: 头部错误信息: 2019-09-24 14:51:11.842 INFO 6728 --- [nio-9002-exec-2] o.s.web.servlet ...
- mysql中distinct关键字_MySQL关键字Distinct的详细介绍
MySQL关键字Distinct用法介绍 DDL Prepare SQL: create table test(id bigint not null primary key auto_incremen ...
- mysql怎么模糊查询名字_mysql中模糊查询的四种用法:
一.%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百 分号(%%)表示. *注:like '%龙%':查询出所有含有"龙"的记录 1. 所查 ...
- MySQL 关键字模糊匹配按照匹配度排序
MySQL 关键字模糊匹配,并按照匹配度排序. 方式一.按照关键字搜索,然后根据关键字所占比例排序 SELECTdrug_name,pinyin FROMtbl_drug WHEREpinyin LI ...
- MySQL模糊查询 结果按匹配度 排序
我们在使用 MySQL 进行模糊查询的时候,受到默认排序的影响,我们会发现与查询关键字相似的记录有时候并没有排到最前面. 如 : CREATE TABLE user(id BIGINT(11) AUT ...
- mysql中的merge into,SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字)...
SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字) 语法请参考: 按照语法编写语句 DECLARE @ ...
- mysql模糊查询指定根据第几个字符来匹配
mysql模糊查询指定根据第几个字符来匹配 下图案例1中,查询某员工名中第三个字符位e,第五个字符为a的员工名和工资 select last_name,salary FROM employess W ...
最新文章
- swift 中跳转web view的两种方法
- 生物信息通识技术研讨会
- UA OPTI512R 傅立叶光学导论17 离散傅立叶变换简介
- 【HeadFirst 设计模式学习笔记】13 MVC分析
- mysql etc my.cnf_mysql配置文件 /etc/my.cnf 详细解释
- Linux第二次作业
- 11.4 优化拆分和合并(region)
- 程序设计竞赛(ACM)与认证(CCF)的概念集(百度百科)
- 浏览器接收响应消息并显示内容
- 栈、堆、静态存储区的三分天下
- 使用python实现日志功能
- java6和java7的区别_Java String的intern方法 在JDK6和JDK7的不同行为
- Layui treeTable相关
- 共享服务器协议,3.5.7 文件共享服务及SMB协议
- 海康人脸服务器型号,DS-2CD7A27FWD/F-LZ(S) 海康人脸识别摄像机 海康200万像素深眸智能人脸日夜筒型网络摄像机...
- 【windows屏幕扩展】把你多余屏幕利用起来,spacedesk屏幕扩展超低延迟解决方案
- html+css设置背景图移动以及人物行走的动画效果
- 车载系统大战:左边是BAT,右边是华为小米们
- Praat脚本-025 | 轻松合并不同目录里的TextGrids
- OGRE 火炬之光(torchlight) 骨骼动画 .
热门文章
- 实用干货秘籍!最经典的10个Pandas数据查询案例,收藏!
- db9针232接口波特率标准_9针RS232-422-485接口定义
- Skype国际版下载方法
- native2ascii命令详解
- java velocity 语法_Velocity语法
- 三星5G先锋计划:0元起抢先换5G不是梦
- tasklist 结束进程_netstat -ano,ntsd;tasklist,tskill-查看杀死进程命令 | 学步园
- Druid-1.1.12.jar下载 (链接下载+使用)
- 第1章-确定superboot210如何为smart210的nand flash进行的分区划分
- NT、Novell、Unix服务器的互连