【问题标题】:php mysql query finding closest resultsphp mysql查询找到最接近的结果
【发布时间】:2012-07-30 21:21:49
【问题描述】:

解决这个问题的最佳方法是什么?

  • 按名字搜索用户,其中参数是字符串。结果应该显示一个列表 名字与搜索字符串最接近的 10 个用户中的一个。

显然,有不同的方法可以解决这个问题。是否已经有任何 mysql 功能可以做到这一点?

我应该只查询所有行并运行某种搜索功能吗?

【问题讨论】:

  • 你是用 InnoDB 还是 MyISAM 引擎来做表?您计划在数据库中拥有多少用户?
  • 如果你的意思是“听起来足够接近”,你可以使用 MySQL 的 SOUNDEX 函数。
  • 10, 000 这只是我必须编写的测试查询。不用担心这个效率。
  • 我刚刚找到了w3schools.com/php/func_string_levenshtein.asp,这看起来像是在这种情况下要走的路。

标签: php mysql algorithm search


【解决方案1】:

查看MySQL Full-Text search functions,它将根据相关性自动返回结果,但它不适用于 InnoDB。

【讨论】:

  • 使用 MySQL 全文搜索有一个很大的缺点:您不能搜索子字符串(仅搜索前缀)。
猜你喜欢
  • 2016-01-01
  • 2021-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 2011-06-01
  • 2012-02-16
  • 2021-04-24
相关资源
最近更新 更多