php - 在 SQL 中搜索相似的文本字符串

标签 php mysql

我浏览了 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

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

关于php - 在 SQL 中搜索相似的文本字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51002012/

相关文章:

php - 检查返回数组中是否有更多引用递归的 MYSQL 查询是什么?

php - 触发器删除表,然后用 Mysql 插入值

php - 用于 PHP session 的 mySQL 和 memcached?

php - 如何根据字段中的 1 或 0 获得不同的结果?

javascript - 单击两个链接时显示一个 Div

php - 尝试从数据库中抓取多个随机视频,但它始终只显示同一个视频

mysql - 使用左外连接时,第二个表中的数据会重复

php - 发送 MySQL 查询,无需表单或页面刷新

php - 图像未存储在 FTP 中

php - 将 MySQL 数据调用到下拉列表中