我正在搜索零件,我面临一个搜索记录的问题。我的产品表的列如下:- 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
我的客户给出了一些参考网站,在该网站上我不能确定 在做。此参考图片:-
请参见上图,我输入了错误的查询“ wooo”。 请提前帮助我。
答案 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));