php - PHP 搜索时漏掉一个字符怎么办?

标签 php mysql search full-text-search sphinx

我正在寻找搜索解决方案。很少有产品的名称:

  1. USB 金士顿 8GB
  2. USB Kingmax 8GB
  3. USB 超越 8GB
  4. USB Sandisk 4GB

我正在使用mysql数据库,我尝试过全文搜索

从与 ('usb 8g') 匹配的产品中选择 * ('productName')

还有sphinx,但当输入“usb 8g”时我没有得到任何结果。但是“usb 8gb”,它有效。

而且我还需要当用户输入“ubs 8gb”时,它也会返回正确的结果。

有什么像Google一样自动识别的解决方案吗?

最佳答案

您必须使用通配符%来匹配部分数据字符串。

尚未测试,但应该像这样工作:

SELECT * FROM PRODUCTS WHERE MATCH('productName') AGAINST ('usb 8g%')

附注在发送到 SQL 语句之前,请先清理用户输入。

关于php - PHP 搜索时漏掉一个字符怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42467189/

相关文章:

php - 如何mysql GROUP_CONCAT

php - codeigniter 多表中的总数量

php - 循环遍历数据库中的每条记录

javascript - NodeJS:无法从函数返回结果

javascript - 切换 div 重定向到带有 ID 的链接

Javascript php验证,在2个文本框中填写一个文本框后第二次提交表单提交

c# - MySqlDataReader C# 中的 HasRows 属性总是返回真值?

MySQL 存储过程传递非常大的字符串值

正则表达式查找包含序列但不包含不同序列的行

xaml - 如何在 xamarin 表单中隐藏搜索栏中的搜索图标