我已经浏览了有关Stack Overflow的一些问题,但似乎找不到答案。我已经将一个包含客户信息的非常大的数据库(大约600万个条目)导入了MySQL数据库。我正在使用PHP查询数据库。尚未以计算机友好方式输入数据。当客户检查其详细信息时,我还需要在数据库中查询其他具有完全相同的物理地址的人,并通知用户。
问题在于,已经以各种方式输入了相同的地址,例如
海洋大道105号
海洋大道105号。
在某些地址中,逗号之间还存在其他空格或双精度空格,例如:
纽约海洋大道105号
纽约市海洋大道105号
这使equals =运算符变得无用...是否有一种简单的方法来查询数据库以查找(例如)80%或更高的相似度。
答案 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
答案 1 :(得分:0)
您可以从Php中进行比较。例如,使用Php similar_text或levenshtein函数。这两个函数都提供了两个字符串之间相似度的度量。