我正在建立一个电子商务网站,正在使用PHP和Mysql,并且在名为product的表中有一些产品名称。我如何建立一个搜索系统,如果我键入“ 核桃”,它将返回包含单词“ wallnut,核桃,核桃”和发音相同的单词(如“ valnuts ”的所有结果)。 strong>”,然后首先按最佳匹配结果排序。为此,我正在通过以下查询尝试此操作:
select product_name,photo,in_stock,sell_price
from $tbl_product
where product_name like '%".$q."%'
ORDER BY (CASE WHEN product_name LIKE '".$q."%' THEN 1
WHEN product_name LIKE '%".$q."%' THEN 2 ELSE 3
END) limit 0,10
其中$ q是搜索字符串。通过此查询,我得到结果,但只有完全匹配的单词。 我需要Bigbasket.com上的结果 wallnuts,wallnut,walnts,valnuts 。
答案 0 :(得分:1)
您可以尝试的最接近的是MYSQL中的select * from mytext
where soundex(val) LIKE CONCAT('%',SOUNDEX('wallnut'),'%')
函数。
main_container
这给了我胡桃,胡桃,沃尔特斯。Check Demo here