Maison >base de données >tutoriel mysql >Comment ajouter et utiliser la fonction de distance Levenshtein dans MySQL ?
Ajout de la fonction de distance Levenshtein à MySQL
Pour incorporer la fonction de distance Levenshtein dans MySQL, accédez à MySQL Workbench et exécutez l'instruction suivante :
CREATE FUNCTION levenshtein(s1 VARCHAR(255), s2 VARCHAR(255)) RETURNS INT DETERMINISTIC BEGIN DECLARE len1 INT DEFAULT LENGTH(s1); DECLARE len2 INT DEFAULT LENGTH(s2); DECLARE i, j, cost, temp INT DEFAULT 0; DECLARE c1, c2 CHAR(1); IF len1 = 0 THEN RETURN len2; ELSEIF len2 = 0 THEN RETURN len1; END IF; SET cost = ARRAY(len1 + 1, len2 + 1); FOR i = 1 TO len1 DO SET cost[i][0] = i; END FOR; FOR j = 1 TO len2 DO SET cost[0][j] = j; END FOR; FOR i = 1 TO len1 DO c1 = SUBSTR(s1, i, 1); FOR j = 1 TO len2 DO c2 = SUBSTR(s2, j, 1); IF c1 = c2 THEN SET temp = 0; ELSE SET temp = 1; END IF; SET cost[i][j] = LEAST(cost[i - 1][j] + 1, cost[i][j - 1] + 1, cost[i - 1][j - 1] + temp); END FOR; END FOR; RETURN cost[len1][len2]; END;
Cela créera la fonction levenshtein() dans votre MySQL exemple.
Exemple d'utilisation en PHP
Pour utiliser la fonction en PHP, connectez-vous à votre base de données MySQL et exécutez une requête à l'aide de la fonction levenshtein() :
<?php $servername = "localhost"; $database = "test"; $username = "root"; $password = "password"; // Create connection $conn = new mysqli($servername, $username, $password, $database); // Execute query $result = $conn->query("SELECT levenshtein('abcde', 'abced')"); // Get result $row = $result->fetch_assoc(); // Print result echo $row['levenshtein(s1, s2)']; ?>
Dans cet exemple, la requête renvoie 2, indiquant que la distance de Levenshtein entre "abcde" et "abced" est 2.
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!