DB/MySQL

[MySQL] REPLACE 문자열 일괄 변경

야곰야곰+책벌레 2021. 5. 3. 19:07
728x90
반응형

  PRIMARY KEY를 복수개를 사용할 경우, 외래키를 사용하는 것이 쉽지 않다. 그럴 경우에는 데이터의 무결성을 지켜기 위해서 CASCADE를 직접 구현해야 할 때가 있다. 그 중에서 UPDATE의 경우에 'REPLACE'라는 명령어를 사용하면 쉽게 구현할 수 있다.

 

  • Column에서 특정 문자를 변경해서 표시할 경우
SELECT REPLACE(필드명, TARGET, NEW) FROM 테이블명;
  • Column의 특정 문자를 변경해서 업데이트 할 경우
UPDATE 테이블명 SET 필드명 = REPLACE(필드명, TARGET, NEW);

 

상기와 같은 명령을 실행하게 되면 테이블에서 TARGET 데이터가 NEW 데이터로 일괄 변경되어 버린다. 이 때 특정 조건을 이용하여 변경될 데이터를 제약할 수 있다.

UPDATE 테이블명 SET 필드명 = REPLACE(필드명, TARGET, NEW) WHERE 조건문;

실제 데이터를 사용한 예시를 살펴보면 아래와 같다.

UPDATE `submachtbl` SET -- 테이블 submachtbl 에서
	machID = REPLACE(machID, 'mc1', 'mc2') -- machID 필드에서 'mc1'를 'mc2'로 변경한다.
	WHERE machID='mc1' AND machName='newMc'; -- 단, machID는 'mc1'이고 machName은 'newMc'에 한해서

일괄 변경해주기 때문에 Procedure를 구현하지 않은 상태에서 빠르게 변경해줄 수 있다.

728x90
반응형