Для разницы в 1 букву предварительно составьте таблицу следующим образом.Создайте лексикон из 2 столбцов со словом «во втором столбце» и со следующим в первом столбце: по одной позиции за раз, уберите одну букву из слова.
Пример: «мясо» - этослово;Вот строки для него в таблице:
`col1` `col2`
------ ------
meat meat
eat meat
mat meat
met meat
mea meat
Для «встретить» (обратите внимание на двойную букву):
meet meet
eet meet
met meet -- only needed once
mee meet
Затем протестируйте аналогичным образом.При поиске «mert», выполните
WHERE col1 IN ('mert', 'ert', 'mrt', 'met', 'ert')
Обратите внимание, что вы получите и «мясо» и «встреча» из приведенного выше примера.Обратите также внимание на то, что произойдет с «встречается» и «встречается».
И он проверяет простые транспонирования.При поиске «meta»:
WHERE col1 IN ('meta', 'eta', 'mta', 'mea', 'met')
найдет «мясо», «встретить» (и другие слова, такие как встретил, значит, ...) Возможно, «мета» -> «значит» - это 2расстояние до буквы, ну да ладно.
Проверка ваших контрольных примеров - mert против
aert - через "ert"
ert - через "ert"
meat -- через "met"
mmert - через "mert"
merst - через "mert"
merts - через "mert"
Между тем, PRIMARY KEY(col1, col2), INDEX(col2)
на этом столе.