집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에 Levenshtein 거리 함수를 추가하는 방법은 무엇입니까?
소개:
문자열 유사성의 척도인 Levenshtein 거리를 계산하는 방법은 다음과 같습니다. 다양한 응용 분야에서 유용한 도구입니다. 이 문서에서는 Levenshtein 함수를 MySQL에 추가하는 과정을 안내하여 데이터베이스 쿼리 내에서 문자열 간의 유사성을 쉽게 확인할 수 있습니다.
함수 추가:
MySQL에 Levenshtein 함수를 추가하려면 다음을 따르십시오. 단계:
다음 SQL을 실행하세요 명령문:
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
함수 생성 확인: 쿼리를 실행하여 함수가 성공적으로 추가되었는지 확인합니다.
SELECT levenshtein('abcde', 'abced');
둘 사이의 거리를 나타내는 2라는 예상 결과를 얻어야 합니다. 문자열입니다.
위 내용은 MySQL에 Levenshtein 거리 함수를 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!