MySQL和PHP搜索类似的单词

时间:2013-12-03 17:26:09

标签: php mysql select

我的MySQL表包含具有属性名称(项目名称)和关键字(与项目相关的单词)的项目。我使用以下代码搜索数据库..

SELECT * FROM items WHERE (name LIKE '%$query%' OR keywords LIKE '%$query%') LIMIT $start, $per_page"

一个项目是手机,它有一个关键字“移动”,所以当有人搜索移动时,该项目显示为结果,这很好。但是当有人用“s”搜索“手机”时,它显示没有结果。如何查询包含搜索词的任何内容?

1 个答案:

答案 0 :(得分:3)

假设由于缺乏细节而导致这次投票失败,我正在编辑解释。

Like运算符将严格的字符模式与一些通配符匹配。您要求数据库执行的操作是在搜索条件上解释自然语言变体以解释复数等问题。单独使用模式匹配不能做到这一点。没有好的,可靠的方法来匹配搜索词的一部分与Like或类似的运算符(例如,我们可以编写代码来删除搜索中的任何尾随空格以尝试匹配更多项)。我建议您研究以下内容,这是所有主要RDBMS平台(如MS SQL)的共同功能:

自然语言全文检索:

http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html

该链接是对包含示例代码的功能的引用。