El tema en el que está profundizando se llama "Búsqueda difusa". Es una gran madriguera de conejo para saltar, dependiendo de la precisión que quieras obtener. Existen varios métodos, tales como:
- soundex
- Distancia Damerau-Levenshtein
- Distancia Jaro-Winkler
- metáfono
- metáfono doble
Algunas referencias para revisar:
- Búsqueda difusa a pequeña escala de PHP/MySQL
- http://en.wikipedia.org/wiki/Approximate_string_matching
- ¿Cómo hago una coincidencia parcial de nombres de empresas en MYSQL con PHP para autocompletar?
- Implementación de la distancia de Levenshtein para mysql /búsqueda difusa?