mysql like模糊匹配,按照匹配度排序方式
mysql like模糊匹配,按照匹配度排序
需求:需要查詢用戶表里面的用戶名稱,根據(jù)用戶名稱的相似度進行排序,總表數(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)文章
解決MySQL報錯:You?can‘t?specify?target?table?‘region‘?for?
這篇文章主要給大家介紹了關(guān)于MySQL報錯:You?can‘t?specify?target?table?‘region‘?for?update?in?FROM?clause的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02
SQL?日期處理視圖創(chuàng)建(常見數(shù)據(jù)類型查詢防范?SQL注入)
這篇文章主要為大家介紹了SQL日期處理和視圖創(chuàng)建:常見數(shù)據(jù)類型、示例查詢和防范?SQL?注入方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
mysql函數(shù)之常見數(shù)學函數(shù)示例詳解
文章總結(jié)了多個數(shù)學和字符串處理函數(shù)的功能和使用示例,包括格式化數(shù)字、計算絕對值、平方根、取整、生成隨機數(shù)、四舍五入、截斷、返回符號、冪運算以及最大值最小值的計算,感興趣的朋友一起看看吧2025-03-03

