Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengintegrasikan Fungsi Levenshtein ke dalam MySQL untuk Aplikasi Carian PHP?

Bagaimana untuk Mengintegrasikan Fungsi Levenshtein ke dalam MySQL untuk Aplikasi Carian PHP?

Mary-Kate Olsen
Lepaskan: 2024-12-07 18:16:12
asal
435 orang telah melayarinya

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

Memasang Fungsi Levenshtein dalam MySQL

Masalah:

Bagaimanakah jarak Levenshtein boleh berfungsi dimasukkan ke dalam MySQL untuk digunakan dalam carian berasaskan PHP aplikasi?

Penyelesaian:

Menambah Fungsi Levenshtein

Untuk menambah fungsi Levenshtein pada MySQL, ikuti langkah ini menggunakan Meja Kerja MySQL:

  1. Sambung ke MySQL anda pelayan.
  2. Laksanakan pernyataan berikut:
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
Salin selepas log masuk

Contoh Penggunaan

Setelah fungsi Levenshtein ditambahkan, anda boleh menggunakannya dalam PHP seperti berikut:

$query = "SELECT levenshtein('abcde', 'abced')";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_array($result);
echo $row['levenshtein(abcde, abced)']; // Output: 2
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengintegrasikan Fungsi Levenshtein ke dalam MySQL untuk Aplikasi Carian PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan