Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menambah Fungsi Jarak Levenshtein ke MySQL?

Bagaimana untuk Menambah Fungsi Jarak Levenshtein ke MySQL?

Susan Sarandon
Lepaskan: 2024-12-09 16:08:15
asal
753 orang telah melayarinya

How to Add a Levenshtein Distance Function to MySQL?

Menambah Fungsi Levenshtein pada MySQL

Pengenalan:

Mengira jarak Levenshtein, metrik untuk persamaan rentetan, ialah alat yang berharga dalam pelbagai aplikasi. Artikel ini membimbing anda melalui proses menambah fungsi Levenshtein pada MySQL, membolehkan anda menentukan persamaan antara rentetan dalam pertanyaan pangkalan data anda dengan mudah.

Menambah Fungsi:

Untuk menambah fungsi Levenshtein pada MySQL, ikuti ini langkah:

  1. Sambung ke MySQL: Wujudkan sambungan ke pelayan MySQL anda menggunakan alat seperti MySQL Workbench atau baris arahan.
  2. Jalankan SQL berikut pernyataan:

    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
    Salin selepas log masuk
  3. Sahkan Penciptaan Fungsi: Jalankan pertanyaan untuk memastikan fungsi telah berjaya ditambahkan:

    SELECT levenshtein('abcde', 'abced');
    Salin selepas log masuk

    Anda sepatutnya mendapat hasil yang dijangkakan daripada 2, menunjukkan jarak antara kedua-duanya rentetan.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Fungsi Jarak Levenshtein ke MySQL?. 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