天天看點

關于資料篩選的不打不小的問題

問題如下:

       假設這樣一種情況,首先說明,資訊是存放在mysql資料庫中的。情況如下,A表資訊堆是百萬級資訊堆(每條資訊長度不長,基本在20字元以内,屬于簡短詞語),B則是一條普通資訊(長度大概在500字元左右),問,有哪種最有效的方式可以來判斷B資訊中是否包含有A堆中的資訊并傳回包含的資訊?

在此提供一種解法,如果大家有更好的解法歡迎大家留言交流!

由于A資訊堆資料量比較大并存放于資料庫中,故産生一個很簡單的解法,直接通過一條sql解決,當然,這樣會衍生一個問題就是sql優化,如何減少搜尋時間就要看你自己的優化手段啦。

查詢sql如下:

    select GROUP_CONCAT(比對表字段) content from 表名 where  instr(B表資訊,比對表字段)>0

另外,大家還可以采用全文檢索的方式來提高檢索速度