쿼리문 질문 드립니다. 특정 문자 찾아서 변경 하는 법 0 4 1,037

by 크흑흑 [SQL Query] mariadb query [2022.10.31 00:12:02]


posts 테이블에 웹사이트의 페이지별 코드를 아래 표처럼 저장했습니다. 

사이트의 도메인이 하위 디렉토리로 바뀌어서 코드에서 url을 지정하는 부분을 전부 바꿔주어야합니다.

DB에 담긴 코드 텍스트 중 link_option_url=""에 url이 담깁니다.

link_option_url=""에 /blog 가 포함되어있지 않을 경우, /blog를 맨앞에 포함시키려합니다.

link_option_url="/kangminji_co", link_option_url="/kimkuku"  등을 찾아서 link_option_url="/blog/kangminji_co", link_option_url="/blog/kimkuku" 로 바꾸는 것입니다.

쿼리를 어떻게 날려야 하는지 궁금합니다.. 가능한 것일까요..? 

 

SELECT ID, content FROM `posts` 

ID

content

1 ...(여러 잡다한 코드더미).... _module_preset="default" link_option_url="/kangminji_co" global_colors_info="{}" ...(여러 잡다한 코드더미).... link_option_url="/kimkuku_co" ..... 
2 ....... _module_preset="default" link_option_url="/kimsunghyon_co" global_colors_info="{}" ....... link_option_url="/blog/kimmoo_co" ....... 

3

4

5

...

 

by pajama [2022.10.31 00:39:25]

안녕하세요. 아래같이 치환하는 방식은 어떨까요?

 

select case when content like '%url="/blog%' then content 
            else replace(content, 'link_option_url="', 'link_option_url="/blob') 
       end content
from posts;

 


by 크흑흑 [2022.10.31 11:55:33]

안녕하세요! 내용에 빼먹은게 있어서 추가했습니다ㅜㅜ 답변 감사드립니다!


by 마농 [2022.10.31 12:29:07]
-- 1. 갱신 대상 사전 확인 --
SELECT id, content
     , REPLACE(REPLACE(content
       , 'link_option_url="/'          , 'link_option_url="/blog/')
       , 'link_option_url="/blog/blog/', 'link_option_url="/blog/') x
  FROM posts
 WHERE content
    != REPLACE(REPLACE(content
       , 'link_option_url="/'          , 'link_option_url="/blog/')
       , 'link_option_url="/blog/blog/', 'link_option_url="/blog/')
;

-- 2. 갱신 --
UPDATE posts
   SET content
     = REPLACE(REPLACE(content
       , 'link_option_url="/'          , 'link_option_url="/blog/')
       , 'link_option_url="/blog/blog/', 'link_option_url="/blog/')
 WHERE content
    != REPLACE(REPLACE(content
       , 'link_option_url="/'          , 'link_option_url="/blog/')
       , 'link_option_url="/blog/blog/', 'link_option_url="/blog/')
;

 


by 크흑흑 [2022.10.31 18:22:43]

많은 도움이 되었습니다! 답변 감사드립니다!! 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입