mysql like模糊匹配,按照匹配度排序方式
更新时间:2023年08月29日 09:41:19 作者:古之恶来
这篇文章主要介绍了mysql like模糊匹配,按照匹配度排序方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
mysql like模糊匹配,按照匹配度排序
需求:需要查询用户表里面的用户名称,根据用户名称的相似度进行排序,总表数据 20万+
方法一: $keyword = ‘简笔画’;
LENGTH()
SELECT nick_name,id FROM show_user WHERE nick_name LIKE '%$keyword %' ORDER BY LENGTH($keyword )
时间: 0.0014s

tp5 里面无法使用->order(LENGTH()) ;网上也没有查找到数据资料。有知道的可以告知.
方法二
SELECT nick_name,id,(length(nick_name)-length('简笔画')) as rn FROM
show_user WHERE nick_name LIKE '%简笔画%' ORDER BY rn
方法三
SELECT nick_name,id,LOCATE("简笔画",nick_name) as rn
FROM show_user WHERE nick_name LIKE '%简笔画%' ORDER BY rn ASC
此时查询出来的数据无法100%完全匹配顺序, LOCATE() 是匹配文字的在字段的中的位置。
LOCATE(substr,str);
返回字符串substr中第一次出现子字符串的位置 str。
mysql获取模糊,根据模糊查询匹配度大小排序
方法一
根据匹配结果的长短排序
select * from audit_manage_pro where pro_name LIKE '%集成电路%' ORDER BY ABS(LENGTH(pro_name)-LENGTH('集成电路'))
方法二
select * from audit_manage_pro where pro_name LIKE '%集成电路%' ORDER BY LOCATE('集成电路',pro_name)方法三
select * from audit_manage_pro where pro_name LIKE '%集成电路%' ORDER BY REPLACE(pro_name,'集成电路','')
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
故障的机器修好后重启,狂拉主库binlog,导致网络问题的解决方法
本文主要记录一次简单的、典型的故障,发生问题的原因很简单,这个问题发生也很简单,各位同学一定要注意,一不留神就会对主库造成影响2016-04-04
Windows10下mysql 5.7.21 Installer版安装图文教程
这篇文章主要为大家详细介绍了Windows10下mysql 5.7.21 Installer版安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-09-09


最新评论