So implementieren Sie die Levenshtein-Funktion in MySQL
Sie möchten die Levenshtein-Funktion in Ihre MySQL-Datenbank integrieren, um Vergleiche der Zeichenfolgenähnlichkeit zu erleichtern . Hier ist eine Schritt-für-Schritt-Anleitung, wie Sie dies erreichen:
Wie bereits erwähnt, können Sie den Code für die Levenshtein-Distanzfunktion hier erwerben. Sobald Sie den Code haben, fahren Sie mit den folgenden Schritten fort:
Stellen Sie eine Verbindung mit Ihrem MySQL-Server her Ihre bevorzugte Methode, z. B. MySQL Workbench.
Führen Sie die folgende Anweisung aus, um die Levenshtein-Funktion in Ihrer MySQL-Datenbank zu erstellen:
CREATE FUNCTION levenshtein(a VARCHAR(255), b VARCHAR(255)) RETURNS SMALLINT DETERMINISTIC BEGIN DECLARE i, j, s VARCHAR(255), costs VARCHAR(255); DECLARE c, mina, minb, napi, napj, cost_a, cost_b, di, dj, new COSTTYPE[]; SET s = REPEAT(' ',LENGTH(b)+2); SET costs = REPEAT(' ',(LENGTH(b)+2) * (LENGTH(a)+2)); SET c = 1; WHILE c <= LENGTH(a) DO SET new = costs + 1; SET mina = c + 1; SET i = 1; WHILE i <= LENGTH(b) DO SET napj = costs + (i * 2) + 1; SET di = CHAR_LENGTH(SUBSTR(a,c,1)); SET dj = CHAR_LENGTH(SUBSTR(b,i,1)); SET napj = costs + (i * 2) + 2; IF di = dj AND di > 0 AND dj > 0 THEN IF di > 1 AND di < 127 AND dj > 1 AND dj < 127 AND (di-dj=-1 OR di-dj=1) AND SUBSTR(a,c,1) = SUBSTR(b,i,1) THEN SET napi = costs + 2; ELSE SET napi = costs + (i * 2) + 3; END IF; ELSE SET napi = costs + 2; END IF; SET cost_a = napj - mina; SET cost_b = napi - napj; SET mina = new + (i * 2) + 1; SET minb = napi + 1; IF cost_a < cost_b AND cost_a < mina THEN SET c = di + 1; SET costs = new; ELSEIF cost_b < mina THEN SET di = dj + 1; SET costs = new; ELSE SET mina = new + (i * 2) + 1; END IF; SET napj = mina; SET mina = napi; SET i = i + 1; END WHILE; SET c = c + 1; END WHILE; RETURN napj - mina; END;
Sie können bestätigen, dass die Funktion erfolgreich erstellt wurde, indem Sie nach fragen it:
SHOW FUNCTION STATUS WHERE name = 'levenshtein'
Um die Levenshtein-Funktion zu verwenden, verweisen Sie einfach in Ihren Abfragen darauf. Um beispielsweise den Levenshtein-Abstand zwischen den Zeichenfolgen „abcde“ und „abced“ zu berechnen, würden Sie die folgende Abfrage verwenden:
SELECT levenshtein('abcde', 'abced')
Diese Abfrage gibt ein Ergebnis von 2 zurück, was den Levenshtein-Abstand zwischen den Zeichenfolgen angibt zwei Zeichenfolgen.
Um die Levenshtein-Funktion in PHP zu nutzen, können Sie MySQL-Abfragen aus Ihrem Code ausführen. Zum Beispiel:
$mysqli = new mysqli('localhost', 'username', 'password', 'database'); $query = "SELECT levenshtein('abcde', 'abced')"; $result = $mysqli->query($query); while ($row = $result->fetch_assoc()) { echo $row['levenshtein']; }
Dieses Codefragment stellt eine Verbindung zu einer MySQL-Datenbank her, führt die angegebene Abfrage aus und gibt die von der Datenbank zurückgegebene Levenshtein-Distanz aus.
Das obige ist der detaillierte Inhalt vonWie implementiert man die Levenshtein-Funktion in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!