开发者

mysql like模糊匹配,按照匹配度排序方式

开发者 https://www.devze.com 2023-11-19 13:08 出处:网络 作者: 古之恶来
目录mysql like模糊匹配,按照匹配度排序方法一: $keyword = ‘简笔画’;方法二方法三mysql获取模糊,根据模糊查询匹配度大小排序方法一方法二方法三编程客栈总结mysql like模糊匹配,按照匹配度排序
目录
  • mysql like模糊匹配,按照匹配度排序
    • 方法一: $keyword = ‘简笔画’;
    • 方法二
    • 方法三
  • mysql获取模糊,根据模糊查询匹配度大小排序
    • 方法一
    • 方法二
    • 方法三编程客栈
  • 总结

    mysql like模糊匹配,按照匹配度排序

    需求:需要查询用户表里面的用户名称,根据用户名称的相似度进行排序,总表数据 20万+

    方法一: $keyword = ‘简笔画’;

    LENGTH()

    SELECT ni编程客栈ck_name,id FROM shohttp://www.devze.comw_user 
    WHERE nick_name LIKE '%$keyword %' ORDER BY LENGTH($keyword )

    时间: 0.0014s

    mysql like模糊匹配,按照匹配度排序方式

    tp5 里面无法使用->order(LENGTH()) ;网上也没有查找到数据资料。有知道的可以告知.

    方法二

    SELECT nick_name,id,(length(nick_name)-length('简笔画')) as rn FROM 
    show_user WHERE nick_name LIKE '%简笔画%' ORDER BY rn

    mysql like模糊匹配,按照匹配度排序方式

    方法三

    SELECT nick_name,id,LOCATE("简笔画",nick_name) as rn 
    FROM show_user WHERE nick_name LIKE '%简笔画%' ORDER BY rn ASC

    mysql like模糊匹配,按照匹配度排序方式

    此时查询出来的数据无法100%完全匹配顺序, LOCATE() 是匹配文字的在字段的中的位置。

    LOCATE(substr,str);

    返回字符串substr中第一次出现子字符串的位置 str。

    mysql获取模糊,根据模糊查询匹配度大小排序

    方法一

    根据匹配结果的长短排序

    select * from audit_manage_pro where pro_name LIKE '%集成电路%' ORDER BY ABS(LENGTH(pro_name)-LENGTH('集成电路'))

    mysql like模糊匹配,按照匹配度排序方式

    方法二

    select * from audit_manage_pro where pro_name LIKE '%集成电路%' ORDER BY LOCA编程客栈TE('集成电路',pro_name)

    方法三

    select * from audit_manage_pro where pro_name LIKE '%集成电路%' ORDER BY REPLACE(pro_name,'集成电路','')

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.cppcnjavascripts.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号