Heim > Datenbank > MySQL-Tutorial > Wie füge ich die Levenshtein-Distanzfunktion in MySQL hinzu und verwende sie?

Wie füge ich die Levenshtein-Distanzfunktion in MySQL hinzu und verwende sie?

Patricia Arquette
Freigeben: 2024-12-13 22:42:15
Original
800 Leute haben es durchsucht

How to Add and Use the Levenshtein Distance Function in MySQL?

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;
Nach dem Login kopieren

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)'];

?>
Nach dem Login kopieren

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!

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