我有一个表格,其中保存了产品名称。我想执行一个选择查询语句,其中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%'
但没有得到理想的结果。
希望任何人都能提供帮助吗?
答案 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