복붙노트

[SQL] 문자열의 부품을 교체, 열 값을 업데이트

SQL

문자열의 부품을 교체, 열 값을 업데이트

내가 MySQL 데이터베이스에 다음과 같은 열이있는 테이블이

[id, url]

그리고 URL은 같다 :

 http://domain1.com/images/img1.jpg

나는 다른 도메인에 대한 모든 URL을 업데이트 할

 http://domain2.com/otherfolder/img1.jpg

있는 그대로 파일의 이름을 유지.

내가 실행해야 쿼리은 무엇입니까?

해결법

  1. ==============================

    1.

    UPDATE urls
    SET url = REPLACE(url, 'domain1.com/images/', 'domain2.com/otherfolder/')
    
  2. ==============================

    2.

    UPDATE yourtable
    SET url = REPLACE(url, 'http://domain1.com/images/', 'http://domain2.com/otherfolder/')
    WHERE url LIKE ('http://domain1.com/images/%');
    

    관련 문서 : http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace

  3. ==============================

    3.기능을 대체 사용해보십시오 :

    기능을 대체 사용해보십시오 :

    mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
            -> 'WwWwWw.mysql.com'
    

    이 대소 문자를 구분합니다.

  4. ==============================

    4.당신은 단지 기록을 대체하기 위해 WHERE 절을 필요로하는 WHERE 절에서 조건을 준수합니다 (모든 레코드 반대). 당신은 부분 문자열을 표시하기 위해 % 기호를 사용, 즉

    당신은 단지 기록을 대체하기 위해 WHERE 절을 필요로하는 WHERE 절에서 조건을 준수합니다 (모든 레코드 반대). 당신은 부분 문자열을 표시하기 위해 % 기호를 사용, 즉

    LIKE ('...//domain1.com/images/%');
    

    수단 "... // domain1.com/images/"로 시작하고 아무것도 AFTER가 모든 레코드 (대한 %를의 ...)

    또 다른 예:

    LIKE ('%http://domain1.com/images/%')
    

    포함 된 모든 기록을 의미하는 "http://domain1.com/images/"

    문자열의 어떤 부분에서 ...

  5. ==============================

    5.이 시도...

    이 시도...

    update [table_name] set [field_name] = 
    replace([field_name],'[string_to_find]','[string_to_replace]');
    
  6. ==============================

    6.우선 확인해야

    우선 확인해야

    COURSE_NAME는 '% A %'와 같은 대학에서 SELECT *

    다음, 업데이트해야

    UPDATE 대학 SET COURSE_NAME = REPLACE (COURSE_NAME '및 A', '&') 식 (1)

    결과 : 공학 및 A 기술 => 공학 및 기술

  7. from https://stackoverflow.com/questions/10177208/update-a-column-value-replacing-part-of-a-string by cc-by-sa and MIT license