我浏览了 Stack Overflow 上的一些问题,但似乎找不到答案。我已经将一个包含客户信息(大约 600 万条条目)的非常大的数据库导入到 MySQL 数据库中。我正在使用 PHP 查询数据库。数据没有以计算机友好的方式输入。当客户检查他们的详细信息时,我还需要查询数据库以查找具有完全相同物理地址的任何其他人并通知用户。
问题是同一个地址已经以各种方式输入,例如,
105 Ocean Avenue
105 Ocean Ave.
有些地址的逗号之间也有额外的空格或双空格,例如:
105 Ocean Avenue, New York
105 Ocean Avenue , New York
这使得 equals = 运算符变得无用......是否有一种简单的方法来查询数据库以找到(例如)80% 相似度及以上的相似度。
最佳答案
全文搜索是您前进的道路。
您的查询将如下所示,
SELECT * FROM table_name WHERE MATCH(col1, col2)
AGAINST( bool 模式下的“搜索词”)
阅读以下文档,它应该可以达到目的。
https://www.w3resource.com/mysql/mysql-full-text-search-functions.php
关于php - 在 SQL 中搜索相似的文本字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51002012/