精确搜索和类似搜索结合两个表与多个关键字mysql

时间:2015-12-07 17:46:50

标签: mysql search

说我有两张桌子产品和品牌都有以下数据。

tbl_products            
ID  Name               BrandID    Price
1   Keyboard             1        100
2   Keyboard             2        120
3   Keyboard wireless    1        130
4   Keyboard wireless    2        150

tbl_brands  
ID  Name
1   Microsoft
2   Dell
3   HP

我想要的是当我输入'Microsoft Keyboard'或'Keyboard Microsoft'时,它应该列出我的产品ID 1和3而不是2或4甚至2或4有键盘。我可以搜索更多的关键字,但它应该只给我匹配的项目。

SELECT p.*, b.Name BrandName FROM tbl_products p INNER JOIN tbl_brands b ON b.ID = p.BrandID WHERE p.Name LIKE '%Microsoft%' OR b.Name LIKE '%Microsoft%' OR p.Name LIKE '%Keyboard%' OR b.Name LIKE '%Keyboard%'

请帮我编写正确的MySQL查询或查询的任何架构更改..

1 个答案:

答案 0 :(得分:1)

欣赏这个问题。虽然我没有确切的答案,但肯定可以讨论一种解决问题的方法。

第1步将品牌名称+名称作为单个字符串。

第2步对输入的STRING进行标记。示例Microsoft Keyboard = Mincrosoft,Keyboard以下用于拆分输入数据的链接。 How do I split a string so I can access item x?

第3步对第1步中获得的字符串进行类似查询。