問題如下:
假設這樣一種情況,首先說明,資訊是存放在mysql資料庫中的。情況如下,A表資訊堆是百萬級資訊堆(每條資訊長度不長,基本在20字元以内,屬于簡短詞語),B則是一條普通資訊(長度大概在500字元左右),問,有哪種最有效的方式可以來判斷B資訊中是否包含有A堆中的資訊并傳回包含的資訊?
在此提供一種解法,如果大家有更好的解法歡迎大家留言交流!
由于A資訊堆資料量比較大并存放于資料庫中,故産生一個很簡單的解法,直接通過一條sql解決,當然,這樣會衍生一個問題就是sql優化,如何減少搜尋時間就要看你自己的優化手段啦。
查詢sql如下:
select GROUP_CONCAT(比對表字段) content from 表名 where instr(B表資訊,比對表字段)>0
另外,大家還可以采用全文檢索的方式來提高檢索速度