2016-06-10 108 views
1

我有一個問題。我正在創建基於產品子類別的產品建議功能。假設我有一個像MySQL搜索算法最佳匹配

案例1子類(如果我有2個字)

  1. 電視擁有1個產品
  2. 三星電視有1個產品
  3. 三星冰箱有1個產品
  4. 三星冰箱有1個產品

我想要的是如果我輸入三星電視然後我想從TVSamsung TV但不是從Samsung refrigeratorSamsung fridge產品。我曾嘗試是

select * from tabel name where title like "%Samsung TV%" or title like "%Samsung" or title like "%TV" 

情況1個問題

也選擇產品三星冰箱三星冰箱

案例2時(也就是說超過2 )

  1. 三星洗衣機有1個產品
  2. 塔塔洗衣機有1個產品
  3. 三星洗衣機設備有1個產品
  4. 洗衣機有1個產品

我要的是,如果我進入三星洗衣機機器。我寫的查詢是

select * from tabel name where title like "%Samsung washing machine%" or title like "%Samsung washing%" or title like "%washing machine%" 

情況下2問題

到目前爲止沒有問題,但更好的解決方案將不勝感激。 enter image description here 巨大的預先感謝。

+0

看看正則表達式的迷人世界 – Strawberry

+1

查看全文索引 – Yann39

+0

全文索引將選擇所有匹配的項目。你認爲@ Yann39 – MKD

回答

0

你可以嘗試這樣的事情: -

select * from department where Name like "%Samsung" or (Name like "%Tv%" and Name like "%Samsung%") UNION select from department where Name like "%tv" or (Name like "%Samsung%" and Name like "%TV%") 

希望這將是有益的

+2

感謝兄弟。它的工作。 – MKD

0

更好,你只需要使用和

select * from tabel name where title like "%TV" or (title like "%Samsung%" and title like "%TV%") 
+0

但如果我添加'自行車運動'然後根據這個查詢它會選擇'鞋子運動'或'項目運動'等所有運動項目 – MKD

+0

如果查詢是選擇*從表名稱其中(標題如「%自行車% 「和標題,如」%sports%「),那麼沒有 – monterico

+0

那麼這個查詢將不會選擇'自行車'子類別 – MKD