Heim > Datenbank > MySQL-Tutorial > Wie füge ich MySQL eine Levenshtein-Distanzfunktion hinzu?

Wie füge ich MySQL eine Levenshtein-Distanzfunktion hinzu?

Susan Sarandon
Freigeben: 2024-12-09 16:08:15
Original
753 Leute haben es durchsucht

How to Add a Levenshtein Distance Function to MySQL?

Hinzufügen der Levenshtein-Funktion zu MySQL

Einführung:

Die Berechnung der Levenshtein-Distanz, einer Metrik für String-Ähnlichkeit, ist ein wertvolles Werkzeug in verschiedenen Anwendungen. Dieser Artikel führt Sie durch den Prozess des Hinzufügens der Levenshtein-Funktion zu MySQL und ermöglicht Ihnen die einfache Bestimmung der Ähnlichkeit zwischen Zeichenfolgen in Ihren Datenbankabfragen.

Hinzufügen der Funktion:

Um die Levenshtein-Funktion zu MySQL hinzuzufügen, befolgen Sie diese Schritte:

  1. Verbinden mit MySQL: Stellen Sie mit einem Tool wie MySQL Workbench oder der Befehlszeile eine Verbindung zu Ihrem MySQL-Server her.
  2. Führen Sie die folgende SQL-Anweisung aus:

    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
    Nach dem Login kopieren
  3. Funktionserstellung überprüfen: Führen Sie eine Abfrage aus, um sicherzustellen, dass die Funktion erfolgreich ausgeführt wurde hinzugefügt:

    SELECT levenshtein('abcde', 'abced');
    Nach dem Login kopieren

    Sie sollten das erwartete Ergebnis von 2 erhalten, das den Abstand zwischen den beiden Saiten angibt.

Das obige ist der detaillierte Inhalt vonWie füge ich MySQL eine Levenshtein-Distanzfunktion hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage