깨져있는 링크 걸려 있는 <a href src="특정도메인.com/xxxx/xxxxx/xxx.jpg"></a> 가 있다면 이것을 싹 날리고 싶습니다. 그런데 방법이 있을까요? 

 

UPDATE xe_documents  SET content = REPLACE(content 현재 문구 변경문구)

 

이것으로는 저렇게 불규칙적인 패턴(빨간색부분) 떄문에 한번에 다 날릴수가 없더군요.

 

  • profile

    정규식을 사용하면 DB에서 치환할 수도 있겠지만, 복잡한 UPDATE이기 때문에 위험부담이 꽤 높습니다.

    만약 <a> 태그 안에 <img> 태그 같은 게 들어 있다면 그건 또 유지해야 하지 않나요?

    그냥 스크립트 몇 줄 넣어서 jQuery로 처리하는 게 편할지도...

  • profile

    db를 자료가 많으신가 봅니다. 싹 날리고 싶다는 표현이 보니.
    정규식으로 하신면 될듯합니다. 기진님의 말처럼 위험성이 있긴합니다.
    예전에는 mysql이 정규식 업데이트를 지원하지 않았는데..
    아무튼 그냥 위에 빨간 문장만 보았을때, 정규식으로 한다면
    간단하게
    '\.com/\[a-z0-9_-]{4}/\[a-z0-9_-]{5}/\[a-z0-9_-]{3}\.jpg'
    이렇게 찾을 수 있겠지요.
    먼저 다음 조건문으로 자료를 먼저 확인해보시고 대략 몇건이 있는지 확인해보시길 바래요.
    where content regexp '\.com/\[a-z0-9_-]{4}/\[a-z0-9_-]{5}/\[a-z0-9_-]{3}\.jpg'
    대략 자료들을 확인하신 후 위 정규식 패턴으로 업데이트 해보세요.
    앞에 도메인이나 a 태그, 또는 xxx라는곳이 숫자인지 아님 문자인지 등등에 따라 더 조밀하게
    패턴을 만들면 좋겠지만 일단은 보이는되로 적어봅니다.

    UPDATE xe_documents SET content = regexp_replace(content , '\.com/\[a-z0-9_-]{4}/\[a-z0-9_-]{5}/\[a-z0-9_-]{3}\.jpg' , '') where content regexp '\.com/\[a-z0-9_-]{4}/\[a-z0-9_-]{5}/\[a-z0-9_-]{3}\.jpg'
    혹시 몰라 조건문 한번더 붙여보았습니다..

    책임은 본인이..휘리릭~~도망..