2013-11-20 3 views
0

두 개의 C1 및 C2 열이있는 테이블 T가 있습니다. 다음과 같이다른 열에 따라 MySQL에서 REGEX_REPLACE에 대한 쿼리

내가 쿼리를 작성하려는 :

UPDATE TABLE T 
SET C2 = REGEX_REPLACE(
    "(REG_SUB_PART1)(REG_SUB_PART2)(REG_SUB_PART3)", 
    C1, 
    REG_SUB_PART1 
) 
WHERE C2="ABC"; 

을 효과적으로 내가 다른 열 C1을 사용하려면, "구글의 말을하자, 이제 URL"http://www.google.com "을 설정 C2 그것의 일부가 될 가정 해 봅시다 .com "$3 (세 번째 부분)을 사용하여 "(http://)?(www\.)?([a-zA-Z0-9]*)" 정규식.

결과적으로 C2는 "google.com"으로 설정되어야합니다.

어떻게 MySql을 사용하여 수행 할 수 있습니까?

추신 : 구체적인 regex에 집중하지 마십시오.

답변

1

http://dev.mysql.com/doc/refman/5.0/en/regexp.html마다 MySQL에서 정규식 캡처 그룹을 수행 할 방법이 없습니다. 그러나 c1에서 시작 색인을 알고있는 경우 유사한 방법을 수행하는 다른 방법이 있습니다.

업데이트 t 세트 c2 = 하위 문자열 (c1,12) 여기서 c2 = 'abc';

이렇게하면 c1 열의 값인 ''에서 'google.com'부분 문자열을 가져옵니다.

다른 MySQL 문자열 함수는 substring, substring_index 및 locate입니다.

관련 문제