SQL 특정 문자 제거한 데이터에 검색하는 방법 질문드립니다.

select REGEXP_REPLACE(contentA, '<(/)?(img|label|table|thead|tbody|tfoot|tr|td|p|div|span|font|strong|b)(.|\s|\t|\n|\r\n)*?>', '') as contentA from AAA

위처럼 html 태그를 제거한 결과 값에 like를 사용하여 재검색할 수 있을까요?

    1개의 답변이 있어요!

    • 안녕하세요.

      3가지 정도로 답변드리겠습니다. 질문에 도움이 되었으면 합니다.

      1. WHERE 절에 바로 like 검색 합니다.(성능에 문제가 있을수 있습니다. 아시겠지만 조건절 왼쪽에 연산이 들어가면 해당 컬럼의 인덱스를 사용할수 없습니다.)

        예) select *

        from aaa

        where regexp_replace(contentA,'html문자제거') like '찾는문자%'

      2. WITH 문으로 임시테이블 생성 입니다.

        예) WITH tempTable AS(

        select aaa.*

        , regexp_replace(contentA,'html문자제거') bb

        from aaa

        )

        select * from tempTable where bb like '찾는문자%'

      3. 뷰테이블을 만들고 뷰테이블에서 을 사용 하는 방법 입니다.

        (뷰테이블이 성능에는 가장 좋을수 있습니다.)