table_name : category
field_name  : category_depth

select category_depth from category;

[result]
002001
003001001
004001005
005
006001
007001 
007002001
007002002
007003
007003001
008001001





위와 같은 상황에서 '007' 부분만 '009'로 업데이트 하고 싶을 경우 replace 함수를 쓰면 됨.

UPDATE category SET category_depth=replace(category_depth, '007', '009');



만약 '002007' 같이 치환하고자 하는 문자열이 중간에도 나와버릴 경우라면 곤란하므로 WHERE 절과 병행하자.


UPDATE category SET category_depth=replace(category_depth, '007', '009') WHERE category_depth LIKE '007%';







[replace]
 함수원형  반환값  설명  예제  결과
 replace(string text, from text, to text)  text  문자열 string 에 존재하는 모든 from 문자열을 to 문자열로 치환  replace('abcdefabcdef', 'cd', 'XX')  abXXefabXXef









Posted by bloodguy
,