在SQL中搜索类似的文本字符串

时间:2018-06-23 14:14:40

标签: php mysql

我已经浏览了有关Stack Overflow的一些问题,但似乎找不到答案。我已经将一个包含客户信息的非常大的数据库(大约600万个条目)导入了MySQL数据库。我正在使用PHP查询数据库。尚未以计算机友好方式输入数据。当客户检查其详细信息时,我还需要在数据库中查询其他具有完全相同的物理地址的人,并通知用户。

问题在于,已经以各种方式输入了相同的地址,例如

  

海洋大道105号

     

海洋大道105号。

在某些地址中,逗号之间还存在其他空格或双精度空格,例如:

  

纽约海洋大道105号

     

纽约市海洋大道105号

这使equals =运算符变得无用...是否有一种简单的方法来查询数据库以查找(例如)80%或更高的相似度。

2 个答案:

答案 0 :(得分:0)

全文搜索是您前进的路径。

您的查询将如下所示,

SELECT * FROM table_name WHERE MATCH(col1, col2) AGAINST('search terms' IN BOOLEAN MODE)

通过以下文档进行操作,应达到目的。

https://www.w3resource.com/mysql/mysql-full-text-search-functions.php

http://www.mysqltutorial.org/mysql-full-text-search.aspx

答案 1 :(得分:0)

您可以从Php中进行比较。例如,使用Php similar_textlevenshtein函数。这两个函数都提供了两个字符串之间相似度的度量。

或者您可以使用Mysql Natural language full text search.