Heim >Datenbank >MySQL-Tutorial >Wie füge ich die Levenshtein-Distanzfunktion in MySQL hinzu und verwende sie?
Hinzufügen der Levenshtein-Distanzfunktion zu MySQL
Um die Levenshtein-Distanzfunktion in MySQL zu integrieren, navigieren Sie zur MySQL Workbench und führen Sie die folgende Anweisung aus :
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;
Dadurch wird die Funktion levenshtein() in Ihrem MySQL erstellt Instanz.
Beispielverwendung in PHP
Um die Funktion in PHP zu verwenden, stellen Sie eine Verbindung zu Ihrer MySQL-Datenbank her und führen Sie eine Abfrage mit der Funktion levenshtein() aus:
<?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)']; ?>
In diesem Beispiel gibt die Abfrage 2 zurück, was den Levenshtein-Abstand zwischen „abcde“ und „abced“ angibt 2.
Das obige ist der detaillierte Inhalt vonWie füge ich die Levenshtein-Distanzfunktion in MySQL hinzu und verwende sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!