mysql排序加权_mysql多关键词查询相关匹配加权排序
SELECT id, title, SUM((CASE WHEN title LIKE '%復仇者%' THEN 1 ELSE 0 END)+(CASE WHEN title LIKE '%聯盟%' THEN 1 ELSE 0 END)) as rnt FROM `hash` WHERE title LIKE '%聯盟%' group by id ORDER by rnt DESC
關鍵1.就是這個SUM()求和函數
關鍵2.該SUM函數要搭配子句:group by id 一起使用才會有效果。
關鍵3.ORDER by rnt DESC //rnt 是sum函數計算后的變量,按這個值的倒序desc排序將最相關匹配的內容排在最前面。
實測數據庫1萬4千行,耗時0.1746 秒,共 65 行,個人覺得這方法也太慢了。。。后期修改為?CASE?WHEN 語句 和他match against 全文索引期待效果更好。
參考:
多關鍵字查詢并根據匹配程度排序
https://blog.csdn.net/prstaxy/article/details/9164837
mysql數據庫中group by和sum一起使用語句的簡單介紹 .
https://www.cnblogs.com/zhenmingliu/archive/2012/04/19/2457444.html
還有另一種方法,不過這種方法太過精準了(全文索引操作符)
https://www.cnblogs.com/devcjq/articles/6340111.html
經實戰學習以后得出個人總結:select....from?前面是計算,from..... 后面是范圍。意思是在這個范圍內計算。
總結
以上是生活随笔為你收集整理的mysql排序加权_mysql多关键词查询相关匹配加权排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求以下double数组的平均值(四舍五入
- 下一篇: beserver.exe是什么进程 be