table_name : category
field_name : category_depth
select category_depth from category;
[result]
002001
003001001
004001005
005
006001
007001
007002001
007002002
007003
007003001
008001001
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 |
'DataBase' 카테고리의 다른 글
[PostgreSQL] seq 값 맞추기 (setval) (0) | 2009.06.15 |
---|---|
[PostgreSQL] 도움말, 매뉴얼. (0) | 2009.06.15 |
[PostgreSQL] 암호화 되어 덤프된 테이블을 새로운 키에 맞게 재암호화 (3) | 2009.06.11 |
[PostgreSQL] 암호화 / 복호화 (0) | 2009.06.11 |
[PostgreSQL] DB, TABLE 정보를 SQL로 보기 (0) | 2009.06.11 |