php - 查找给定的字符串是否匹配,尽管有输入错误

标签 php mysql regex string pattern-matching

我想开发一个脚本来检查字符串是否与任何字符串匹配? 我有包含大量行数据的表。

recordId firstName lastName
    1       jhon      bagman
    2       kerio     control
    3       michele    levis
    4       roger       federrer

我有一堆字符串如下

{
  [0]=>kerio
  [1]=>micehle
  [2]=>roget
  [3]=>jon
}

无论如何,我想通过mysql-queryphp-code 从数据库中找到匹配的记录。 Kerio 必须匹配 kerio michele 必须匹配 michele roget 必须匹配 roger jon 必须匹配 jhon

意味着我想搜索匹配的字符串,即使它包含如上所示的输入错误。

我想通过任何逻辑来解决此问题,即通过运行 mysql 查询 或通过在所有行上执行任何“php 代码”

最佳答案

一个很好但速度慢/计算量大的方法是 Levenshtein Distance .它可以让您准确指定一个词在不被视为匹配之前必须被破坏到什么程度。但是,MySQL 不直接支持此功能,因此您必须在 PHP 中实现它。

直接在 MySQL 中快速/肮脏的方法是比较 SOUNDEX()值。它很快,但也不太可靠:

SELECT ...
FROM table
WHERE SOUNDEX('kerio') IN (SOUNDEX(firstName), (SOUNDEX(lastName))

关于php - 查找给定的字符串是否匹配,尽管有输入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439676/

相关文章:

regex - 使用 grep 搜索文件

php - 镜像API数据库访问问题

java - JDBC并发实现

php - 按子数组值对数组进行分组

php - 数据库设计数值范围

php - Laravel 数据库优先() "Trying to get property of non-object"

用于验证统一类型标识符的正则表达式

mysql - 使用正则表达式搜索并替换 Mysql 中的 JSON

php - 在 pdf 文档中插入手动分页符 - PHP

php - MySQL 连接 ('max_user_connections' )