1. 程式人生 > 其它 >MySQL模糊查詢再也用不著 like+% 了

MySQL模糊查詢再也用不著 like+% 了

1. MySQL模糊查詢再也用不著 like+% 了!

https://mp.weixin.qq.com/s?__biz=MzI1MDQwMDE3MQ==&mid=2247497103&idx=1&sn=8403a876df526d7935342cb7210eab66&chksm=e980694bdef7e05dce6a2759e9c31a53f30ad41c7b18fe383594790b4d8516dba4b54288ce98&mpshare=1&scene=1&srcid=0324Ko0HlF1Xzz2wLJuUBCZS&sharer_sharetime=1648088430315&sharer_shareid=50144fd917fd1dbba0f9c23e954fd64a&version=4.0.2.6061&platform=win#rd

總結

新增全文索引: 

CREATE FULLTEXT INDEX full_index_name ON table_name(col_name);

搜尋: 

SELECT  *  FROM table_name where MATCH  (coloum_name)  AGAINST ('key')
  • +:表示該 word 必須存在
  • -:表示該 word 必須不存在
  • (no operator)表示該 word 是可選的,但是如果出現,其相關性會更高
  • @distance表示查詢的多個單詞之間的距離是否在 distance 之內,distance 的單位是位元組,這種全文檢索的查詢也稱為 Proximity Search,如 MATCH(context) AGAINST('"Pease hot"@30' IN BOOLEAN MODE)
    語句表示字串 Pease 和 hot 之間的距離需在30位元組內
  • >:表示出現該單詞時增加相關性
  • <:表示出現該單詞時降低相關性
  • ~:表示允許出現該單詞,但出現時相關性為負
  • * :表示以該單詞開頭的單詞,如 lik*,表示可以是 lik,like,likes
  • " :表示短語