Fonction MySQL Levenshtein pour des comparaisons de chaînes optimisées avec PHP
Dans le code fourni, la fonction levenshtein() de PHP est utilisée pour calculer la distance d'édition entre la saisie d'un utilisateur ($ mot) et les termes d'un tableau de mots. Le code filtre ensuite le tableau pour trouver les termes avec une distance d'édition de 0 à 4 à partir de l'entrée de l'utilisateur.
Une façon d'optimiser ce processus consiste à utiliser une fonction Levenshtein dans MySQL lui-même. MySQL fournit une implémentation alternative de l'algorithme de Levenshtein appelée EDIT_DISTANCE. En tirant parti de cette fonction, vous pouvez effectuer les comparaisons de chaînes directement dans la base de données, éliminant ainsi le besoin pour PHP de parcourir tous les termes et de calculer les distances d'édition.
Pour implémenter cette optimisation, vous pouvez utiliser la requête suivante :
$word = mysql_real_escape_string($word); mysql_query("SELECT `term` FROM `words` WHERE EDIT_DISTANCE('$word', `term`) BETWEEN 0 AND 4");
Dans cette requête, EDIT_DISTANCE calcule la distance d'édition entre $word et chaque terme de la table des mots. La condition ENTRE 0 ET 4 filtre les résultats pour inclure les termes avec une distance d'édition de 0 à 4 par rapport à la saisie de l'utilisateur.
En utilisant cette requête optimisée, vous pouvez réduire le nombre de requêtes de base de données et améliorer les performances de votre candidature.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!