MySQL에 Levenshtein 함수 설치
문제:
Levenshtein 거리 함수는 어떻게 작동합니까? PHP 기반 검색에 사용하기 위해 MySQL에 통합 응용 프로그램이 있습니까?
해결책:
Levenshtein 함수 추가
Levenshtein 함수를 MySQL에 추가하려면 다음 단계를 따르세요. MySQL Workbench:
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
사용 예
Levenshtein 함수를 추가한 후 사용할 수 있습니다. PHP에서는 다음과 같습니다:
$query = "SELECT levenshtein('abcde', 'abced')"; $result = mysqli_query($link, $query); $row = mysqli_fetch_array($result); echo $row['levenshtein(abcde, abced)']; // Output: 2
위 내용은 PHP 검색 애플리케이션을 위해 Levenshtein 함수를 MySQL에 통합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!