Mysql
 sql >> Base de données >  >> RDS >> Mysql

Trier par Soundex (ou similaire) `Proximité`

Soundex n'est pas bon pour ce genre de choses car différents mots peuvent vous donner les mêmes résultats Soundex et seront donc triés arbitrairement. Une meilleure solution pour cela est l'algorithme Levenshein Edit Distance et vous pourrez peut-être l'implémenter en tant que fonction dans votre base de données :Lien vers Levensheint impl. en tant que fonction stockée MySql !!!

Vous pouvez également consulter ce lien SO . Il contient une implémentation de l'algorithme sur un serveur SQL (spécifique à T-SQL), mais il devrait être possible de le porter. La mécanique de l'algorithme est assez simple, ne nécessitant qu'un tableau 2D et une boucle sur une chaîne.