Introduction :
Le calcul de la distance de Levenshtein, une métrique pour la similarité des chaînes, est un outil précieux dans diverses applications. Cet article vous guide tout au long du processus d'ajout de la fonction Levenshtein à MySQL, vous permettant de déterminer facilement la similarité entre les chaînes dans vos requêtes de base de données.
Ajout de la fonction :
Pour ajouter la fonction Levenshtein à MySQL, suivez ces étapes :
Exécutez l'instruction SQL suivante :
CREATE FUNCTION levenshtein(s1 VARCHAR(255), s2 VARCHAR(255)) RETURNS INT DETERMINISTIC BEGIN DECLARE len1 INT; DECLARE len2 INT; DECLARE i INT; DECLARE j INT; DECLARE cost INT; DECLARE min1 INT; DECLARE min2 INT; DECLARE min3 INT; SET len1 = LENGTH(s1); SET len2 = LENGTH(s2); DECLARE matrix INT[][]; SET matrix = NEW INT[len1 + 1][len2 + 1]; FOR i = 0 TO len1 DO SET matrix[i][0] = i; END FOR; FOR j = 0 TO len2 DO SET matrix[0][j] = j; END FOR; FOR i = 1 TO len1 DO FOR j = 1 TO len2 DO IF s1[i] = s2[j] THEN SET cost = 0; ELSE SET cost = 1; END IF; SET min1 = matrix[i - 1][j] + 1; SET min2 = matrix[i][j - 1] + 1; SET min3 = matrix[i - 1][j - 1] + cost; IF min1 < min2 THEN SET min2 = min1; END IF; IF min2 < min3 THEN SET min3 = min2; END IF; SET matrix[i][j] = min3; END FOR; END FOR; RETURN matrix[len1][len2]; END
Vérifier la création de fonction : Exécuter une requête pour vous assurer que la fonction a été exécutée avec succès ajouté :
SELECT levenshtein('abcde', 'abced');
Vous devriez obtenir le résultat attendu de 2, indiquant la distance entre les deux cordes.
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!