我有一个具有以下架构的产品表:
产品(项目名称 VARCHAR(50),itemid INT(10));
示例记录如下所示(itemname
、itemid
):
- 黑莓曲线 3g(黑色),1
- 三星 ACE,3
- 黑莓曲线 3g(白色),2
- 苹果 iPhone 4 32GB(黑色),4
现在假设用户在网站的搜索框中输入查询并显示相应的结果。即,如果用户输入 blackberry
,则应显示 Blackberry 手机
我正在寻找以下问题的答案:
- 如何将搜索文本与项目进行匹配?例如:用户可以
在搜索框中输入
blackberry
那么如何搜索呢? 我应该搜索blackberry
单词作为itemname
的子字符串吗 上表的哪一栏? - 如果用户输入两个单词,例如:
apple 32gb
。现在如果我使用 上面提到的子字符串方法将不起作用,因为表中没有以apple 32gb
作为子字符串的行。这种情况下如何搜索? - 如果用户输入非常通用的搜索文本,例如:
mobiles
。在这种情况下,应显示所有手机。在这种情况下,将itemname
作为子字符串进行匹配也不起作用。 - 用户可以输入搜索文本:
apple 32gb black color
。在这种情况下,应该显示32GB容量、黑色的苹果产品。
我知道实现 100% 正确的搜索是不可能的。我只是在寻找提示/如何继续。我正在使用 PHP、MySQL、Apache。
最佳答案
这是什么样的数据库,如果MySQL可以在字段上启用全文搜索,然后只需一个简单的查询就可以得到你期望的结果。
关于php - 根据搜索查询从数据库返回行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7053429/