>데이터 베이스 >MySQL 튜토리얼 >MySQL에 Levenshtein 거리 함수를 추가하는 방법은 무엇입니까?

MySQL에 Levenshtein 거리 함수를 추가하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-09 16:08:15766검색

How to Add a Levenshtein Distance Function to MySQL?

MySQL에 Levenshtein 함수 추가

소개:

문자열 유사성의 척도인 Levenshtein 거리를 계산하는 방법은 다음과 같습니다. 다양한 응용 분야에서 유용한 도구입니다. 이 문서에서는 Levenshtein 함수를 MySQL에 추가하는 과정을 안내하여 데이터베이스 쿼리 내에서 문자열 간의 유사성을 쉽게 확인할 수 있습니다.

함수 추가:

MySQL에 Levenshtein 함수를 추가하려면 다음을 따르십시오. 단계:

  1. MySQL에 연결: MySQL Workbench와 같은 도구 또는 명령줄을 사용하여 MySQL 서버에 대한 연결을 설정합니다.
  2. 다음 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
  3. 함수 생성 확인: 쿼리를 실행하여 함수가 성공적으로 추가되었는지 확인합니다.

    SELECT levenshtein('abcde', 'abced');

    둘 사이의 거리를 나타내는 2라는 예상 결과를 얻어야 합니다. 문자열입니다.

위 내용은 MySQL에 Levenshtein 거리 함수를 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.