【问题标题】:Smart search in mysql php for one word在 mysql php 中智能搜索一个单词
【发布时间】:2019-04-17 12:01:45
【问题描述】:

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

id   product_name
 1    woodpecker handpiece
 2    hand piece

现在我使用 query="woo" 进行搜索时搜索正常。当我添加 query="wooo" 现在下一次如果我搜索 query="woooooooo" 如果用户输入许多 o 就可以了。我希望至少如果用户输入错误 2(o's) 那么它必须搜索。

SELECT * FROM products WHERE product_name LIKE '%woo%'; //its working fine

SELECT * FROM products WHERE product_name LIKE '%woooo%'; //its not working fine.  

我的客户提供了一些参考网站,我不确定它是如何工作的 正在做。此参考图片:-

见上图我输入了错误的查询 'wooo'.. 它仍在搜索 请帮助我提前谢谢。

【问题讨论】:

标签: php mysql sql


【解决方案1】:

这将起作用:

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

【讨论】:

  • 空数据来了
  • @kunal 向我们展示您的完整查询现在的样子
  • select * from products where soundex(product_name)=soundex('wooo');
  • @nikhilsugandh 我不明白
  • @nikhilsugandh 当我在字符串中添加 wooo 时它没有搜索
猜你喜欢
  • 2013-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-25
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
  • 2018-03-17
相关资源
最近更新 更多