2012-08-29 206 views
0

我正在尋找一種方式來數據庫值對使用MySQL (在反對搜索的數據庫查詢)mysql的搜索數據庫


我會闡述一個給定的查詢比較: 我有保持逗號分隔的關鍵字和關鍵字 例如每個塊的結果的表:

欄1個欄2

奔馳,寶馬,斯巴魯汽車

萬寶路,溫斯頓香菸


今天我要帶去用戶查詢(例如 - Marlboroligt) 你可以看到,如果我將在DB的價值「Marlboroligt」搜索,我要沒有結果。

對於這個問題我想從DB搜索「萬寶路」的查詢中,並返回「香菸」

希望我的解釋是充分的,這實際上是可能的:-)。

+2

正常化你的db會讓事情變得更容易。逗號分隔值的字段真的很亂... –

+0

規範化並不總是一種選擇。 – Brian

+0

好吧,我可以說,我分開了第一列,現在只有一個關鍵字,我現在怎麼做? –

回答

0

正常化將幫助你最。否則,以逗號分隔搜索領域這裏討論的是:

Select all where field contains string separated by comma

...和搜索,而不是「萬寶路輕」 Marlboroligt',你可以嘗試尋找到LEVENSHTEIN功能,或者也許是探測法編碼(這看起來太小了,因爲太大的壓力,但是再次,也許......)。

0

我看到以下可能的解決方案:

  • 設置像Sphinx關鍵字的搜索引擎,並用它來搜索的關鍵字在你的數據庫
  • 正常化您的數據庫 - COL1必須包含唯一的關鍵字
  • 使用圖案

    從MYTABLE

    選擇COL2其中COL1像 「%萬寶路%」

減慢您的應用程序,並可能有子字符串相關的問題。