2016-06-10 104 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