【问题标题】:exact search and similar search combining two tables with multiple keywords mysql精确搜索和相似搜索结合两个表和多个关键字mysql
【发布时间】:2016-03-12 10:20:25
【问题描述】:

假设我有两张表产品和品牌具有以下数据。

tbl_products ID 名称 BrandID 价格 1 键盘 1 100 2 键盘 2 120 3 无线键盘 1 130 4 无线键盘 2 150 tbl_brands 身份证名称 1 微软 2 戴尔 3 马力

我想要的是当我输入“Microsoft 键盘”或“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 查询或查询的任何架构更改..

【问题讨论】:

标签: mysql search


【解决方案1】:

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

步骤 1 将 BRAND NAME+NAME 作为单个字符串。

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

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

【讨论】:

  • SELECT * FROM tbl_products p INNER JOIN gm_brands b ON b.ID = p.BrandID WHERE CONCAT(p.Name, ' ', b.Name) LIKE '%Microsoft%' OR CONCAT(p. Name, ' ', b.Name) LIKE '%keyboard%' 试过了,但没有成功
猜你喜欢
  • 2019-02-07
  • 1970-01-01
  • 2011-03-17
  • 2010-11-08
  • 1970-01-01
  • 2011-09-28
  • 2013-05-09
  • 2011-01-12
相关资源
最近更新 更多