데이터베이스 레코드에서 HTML 태그 제거
MySQL에서는 특정 기술을 사용하여 특정 열에서 HTML 태그를 제거할 수 있습니다. 다음 데이터를 고려하십시오.
SELECT * FROM table WHERE colmn_name ` like '%mytext%'
이 쿼리는 행 3에만 콘텐츠 내에 "mytext"가 포함되어 있어도 4개의 행을 모두 반환합니다. 3행에서만 원하는 결과를 얻으려면 보다 정확한 접근 방식이 필요합니다.
한 가지 해결 방법은 사용자 정의 함수(UDF)를 사용하여 HTML 태그를 제거하는 것입니다. 예는 다음과 같습니다.
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 ;
이 fnStripTags() 함수는 지정된 입력 문자열에서 모든 HTML 태그를 반복적으로 찾아 제거합니다. 다음과 같이 쿼리에서 사용할 수 있습니다.
SELECT * FROM table WHERE fnStripTags(colmn_name) LIKE '%mytext%'
이 수정된 쿼리는 HTML이 아닌 콘텐츠 내에 "mytext"가 포함된 행 3만 반환합니다.
위 내용은 MySQL에서 HTML 태그를 제거한 후 데이터베이스 레코드를 효율적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!