说我有两张桌子产品和品牌都有以下数据。
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查询或查询的任何架构更改..
答案 0 :(得分:1)
欣赏这个问题。虽然我没有确切的答案,但肯定可以讨论一种解决问题的方法。
第1步将品牌名称+名称作为单个字符串。
第2步对输入的STRING进行标记。示例Microsoft Keyboard = Mincrosoft,Keyboard以下用于拆分输入数据的链接。 How do I split a string so I can access item x?
第3步对第1步中获得的字符串进行类似查询。