Найти, соответствуют ли данные строки или нет, несмотря на наличие ошибок при наборе - PullRequest
1 голос
/ 22 июня 2011

Я хочу разработать скрипт, который проверяет, совпадает ли строка с какой-либо строкой или нет?У меня есть таблица, содержащая объемные данные строк.

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

У меня было несколько строк, как показано ниже

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

Я хочу найти подходящие записи из базы данных в любом случае по mysql-query или php-code.Kerio должен соответствовать kerio micehle должен соответствовать michele roget должен соответствовать roger jon должен соответствовать jhon

Означает, что я хочу найти соответствующую строку, даже если она содержит ошибки ввода, как показано выше.

Я хочу это решениепо любой логике, означает running a mysql query или executing any "php code" во всех строках.

1 Ответ

4 голосов
/ 22 июня 2011

Хороший, но медленный / дорогостоящий вычислительный метод - это Расстояние Левенштейна .Это позволяет вам точно указать, каким должно быть искаженное слово, прежде чем оно не будет считаться совпадением.Однако MySQL не поддерживает это напрямую, поэтому вам придется реализовать его в PHP.

Быстрый / грязный метод непосредственно в MySQL - это сравнение значений SOUNDEX () .Это быстро, но и гораздо менее надежно:

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