我怎样才能找到mysql db中表的最佳匹配

时间:2011-03-29 06:30:56

标签: php mysql database

我在mysql数据库(product{id, name, category})中有一个表,它包含数百条记录。

现在新产品添加了相同的字段,我想搜索字段并将其与其他记录匹配,以便找到产品的最佳匹配。

我的问题是什么是最好的方法,如果我搜索产品的名称,但如果有多个与这些名称的匹配怎么办。

我应该使用这样的东西

SELECT * FROM table_name WHERE column1 LIKE '%column1%' OR column2 LIKE '%column2%'

2 个答案:

答案 0 :(得分:0)

您正在寻找MySQL“MATCH()”函数。这有几点需要注意:

  • 这需要全文索引(意味着您必须使用该表的MyISAM引擎)
  • 需要MySQL> = 5.1

来自手册:

在WHERE子句中使用MATCH()时,如前面所示的示例,返回的行将首先自动排序,具有最高的相关性。

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

答案 1 :(得分:0)

您应该查看MySQL全文索引功能,以生成相关性排序的输出。该主题有很多帖子。例如,请参阅this post