Heim > Datenbank > MySQL-Tutorial > Wie integriere ich die Levenshtein-Funktion in MySQL für PHP-Suchanwendungen?

Wie integriere ich die Levenshtein-Funktion in MySQL für PHP-Suchanwendungen?

Mary-Kate Olsen
Freigeben: 2024-12-07 18:16:12
Original
435 Leute haben es durchsucht

How to Integrate the Levenshtein Function into MySQL for PHP Search Applications?

Installieren der Levenshtein-Funktion in MySQL

Problem:

Wie kann die Levenshtein-Distanzfunktion funktionieren? zur Verwendung in der PHP-basierten Suche in MySQL integriert werden Anwendungen?

Lösung:

Hinzufügen der Levenshtein-Funktion

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

  1. Verbinden Sie sich mit Ihrem MySQL Server.
  2. Führen Sie die folgende Anweisung aus:
CREATE FUNCTION levenshtein(s1 VARCHAR(255), s2 VARCHAR(255)) RETURNS INT
BEGIN
  DECLARE len1 INT;
  DECLARE len2 INT;
  DECLARE i INT;
  DECLARE j INT;
  DECLARE c INT;
  DECLARE cost INT;
  DECLARE d INT;
  DECLARE tmp INT;

  SET len1 = LENGTH(s1);
  SET len2 = LENGTH(s2);
  DECLARE matrix[len1 + 1][len2 + 1] INT;

  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 d = matrix[i - 1][j] + 1;
      SET c = matrix[i][j - 1] + 1;
      SET tmp = matrix[i - 1][j - 1] + cost;
      IF d < c THEN
        IF d < tmp THEN
          SET matrix[i][j] = d;
        ELSE
          SET matrix[i][j] = tmp;
        END IF;
      ELSE
        IF c < tmp THEN
          SET matrix[i][j] = c;
        ELSE
          SET matrix[i][j] = tmp;
        END IF;
      END IF;
    END FOR;
  END FOR;

  RETURN matrix[len1][len2];
END
Nach dem Login kopieren

Beispielverwendung

Sobald die Levenshtein-Funktion hinzugefügt wurde, können Sie sie verwenden in PHP wie folgt:

$query = "SELECT levenshtein('abcde', 'abced')";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_array($result);
echo $row['levenshtein(abcde, abced)']; // Output: 2
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie integriere ich die Levenshtein-Funktion in MySQL für PHP-Suchanwendungen?. 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