>데이터 베이스 >MySQL 튜토리얼 >정확한 검색 결과를 위해 데이터베이스 레코드에서 HTML 태그를 효과적으로 제거하는 방법은 무엇입니까?

정확한 검색 결과를 위해 데이터베이스 레코드에서 HTML 태그를 효과적으로 제거하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-06 09:12:10952검색

How to Effectively Remove HTML Tags from Database Records for Accurate Search Results?

데이터베이스 레코드에서 HTML 태그를 효과적으로 제거하는 방법

HTML 형식의 텍스트가 포함된 데이터베이스 테이블에서 특정 정보를 추출할 때 정확한 정보를 얻기 위해 HTML 태그를 제거하는 것이 중요합니다. 결과. "WHERE column_name LIKE '%mytext%'"와 같은 간단한 LIKE 쿼리는 'mytext'를 포함하는 모든 행을 검색할 수 있지만 HTML 태그 내에 'mytext'가 나타나는 행도 포함할 수 있습니다.

이 문제를 해결하려면, 보다 효과적인 접근 방식은 특정 문자열에서 HTML 태그를 구체적으로 제거하는 사용자 정의 MySQL 함수를 생성하는 것입니다. 해당 함수에 대한 코드는 다음과 같습니다.

SET GLOBAL log_bin_trust_function_creators=1;
DROP FUNCTION IF EXISTS fnStripTags;
DELIMITER |
CREATE FUNCTION fnStripTags( Dirty varchar(4000) )
RETURNS varchar(4000)
DETERMINISTIC 
BEGIN
  DECLARE iStart, iEnd, iLength int;
    WHILE Locate( '<', Dirty ) > 0 And Locate( '>', Dirty, Locate( '<', Dirty )) > 0 DO
      BEGIN
        SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty ));
        SET iLength = ( iEnd - iStart) + 1;
        IF iLength > 0 THEN
          BEGIN
            SET Dirty = Insert( Dirty, iStart, iLength, '');
          END;
        END IF;
      END;
    END WHILE;
    RETURN Dirty;
END;
|
DELIMITER ;

이 함수를 사용하면 쿼리는 다음과 같습니다.

SELECT * from table WHERE fnStripTags(column_name) LIKE '%mytext%'

이제 쿼리는 'mytext'가 나타나는 행만 반환합니다. HTML 태그 내의 모든 인스턴스를 제외하고 콘텐츠 자체. 이렇게 하면 원하는 데이터만 검색할 수 있어 더욱 정확하고 관련성이 높은 결과를 얻을 수 있습니다.

위 내용은 정확한 검색 결과를 위해 데이터베이스 레코드에서 HTML 태그를 효과적으로 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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