Menambahkan Fungsi Jarak Levenshtein pada MySQL
Untuk memasukkan fungsi jarak Levenshtein ke dalam MySQL, navigasi ke Meja Kerja MySQL dan laksanakan pernyataan berikut :
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;
Ini akan mewujudkan fungsi levenshtein() dalam anda Contoh MySQL.
Contoh Penggunaan dalam PHP
Untuk menggunakan fungsi dalam PHP, sambung ke pangkalan data MySQL anda dan laksanakan pertanyaan menggunakan fungsi levenshtein():
<?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)']; ?>
Dalam contoh ini, pertanyaan mengembalikan 2, menunjukkan jarak Levenshtein antara "abcde" dan "abced" ialah 2.
Atas ialah kandungan terperinci Bagaimana untuk Menambah dan Menggunakan Fungsi Jarak Levenshtein dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!