如果超过60%的字符串匹配,如何返回结果

时间:2014-06-26 05:54:49

标签: php sql

我有一个表格,其中保存了产品名称。我想执行一个选择查询语句,其中60%或更多的结果匹配

例如:如果有人输入" verifone 500", 那么产品:

1) verifone vx500
2) verifone5
3) verifon00
4) verifone 50"

应该匹配,因为它们是搜索产品的60%或更多。我试过这段代码

select `product_name` from product_data where `product_name` LIKE '%verifone 500%'

但没有得到理想的结果。

希望任何人都能提供帮助吗?

1 个答案:

答案 0 :(得分:0)

您应该使用FULLTEXT搜索MyISAM表格引擎!

如果你的表引擎是MyISAM,那么为字段product_name创建FULLTEXT索引。

然后尝试查询:

SELECT `product_name`, MATCH (`product_name`) AGAINST ('verifone 500' IN NATURAL LANGUAGE MODE) AS match
FROM `product_data`
HAVING `match` > 0.5
ORDER BY `match` DESC