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:
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
Sahkan Penciptaan Fungsi: Jalankan pertanyaan untuk memastikan fungsi telah berjaya ditambahkan:
SELECT levenshtein('abcde', 'abced');
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!