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
...
-- 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/') ;