欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2023年08月29日 09:41:19   作者:古之惡來  
這篇文章主要介紹了mysql like模糊匹配,按照匹配度排序方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

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

需求:需要查詢用戶表里面的用戶名稱,根據(jù)用戶名稱的相似度進(jìn)行排序,總表數(shù)據(jù) 20萬+

方法一: $keyword = ‘簡筆畫’;

LENGTH()

SELECT nick_name,id FROM show_user 
WHERE nick_name LIKE '%$keyword %' ORDER BY LENGTH($keyword )

時間: 0.0014s

tp5 里面無法使用->order(LENGTH()) ;網(wǎng)上也沒有查找到數(shù)據(jù)資料。有知道的可以告知.

方法二

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

此時查詢出來的數(shù)據(jù)無法100%完全匹配順序, LOCATE() 是匹配文字的在字段的中的位置。

LOCATE(substr,str);

返回字符串substr中第一次出現(xiàn)子字符串的位置 str。

mysql獲取模糊,根據(jù)模糊查詢匹配度大小排序

方法一

根據(jù)匹配結(jié)果的長短排序

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,'集成電路','')

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論