在mysql PHP中智能搜索一个单词

时间:2019-04-17 12:01:46

标签: php mysql sql

我正在搜索零件,我面临一个搜索记录的问题。我的产品表的列如下:- id,product_name

{  "code" : "NotAuthorizedOrNotFound",  "message" : "instance ocid1.instance.oc1.eu-frankfurt-1.abtheljsmrq3yox36wukah52yaeswh6jc4vwjfkc46jxe4nwgnmga7nm7bpq not found"}

现在,当我使用query =“ woo”搜索时,它的搜索很好。当我添加query =“ wooo”时现在下次我搜索query =“ woooooooo”时,如果用户输入许多o,就可以了。我至少希望用户输入错误2(o),然后必须搜索。

id   product_name
 1    woodpecker handpiece
 2    hand piece

我的客户给出了一些参考网站,在该网站上我不能确定 在做。此参考图片:-

enter image description here

请参见上图,我输入了错误的查询“ wooo”。 请提前帮助我。

1 个答案:

答案 0 :(得分:3)

这将起作用:

select * from table1 where soundex(product_name)=soundex('wooooooodpecker handpiece');

http://sqlfiddle.com/#!9/59e340/4

许多MySQL字符串函数之一是SOUNDEX()函数。此函数从给定的字符串返回Soundex字符串。如果两个单词听起来相同,则它们应具有相同的Soundex字符串。如果两个单词听起来相似但不完全相同,则它们的Soundex字符串可能看起来相似但不完全相同。

这是您想要的吗?

select * from table1 where 
soundex(substring(product_name,1,3))=soundex(substring('woooooo',1,3));

检查; http://sqlfiddle.com/#!9/59e340/22