문자열 치환 함수 replace() > 데이터베이스

본문 바로가기
사이트 내 전체검색


회원로그인

데이터베이스

MySQL | 문자열 치환 함수 replace()

페이지 정보

작성자 100K5 작성일13-01-22 14:16 조회52,161회 댓글0건

본문

필드의 문자열을 치환하는 함수
 
이 함수는 정확히 INSERT와 DELETE를 동시 수행하는 기능입니다.
 
주의할 점은, PRIMARY KEY 와 UNIQUE 인덱스를 가지고 있어야 하는데, 없다면 의미없는 구문이 됩니다.
 
PRIMARY, UNIQUE 인덱스를 가진 열일 경우 새 열을 삽입하기 전에 기존 열을 삭제하게 합니다.
 
다음 예제는 기존 행에 1를 더한 값을 UPDATE 합니다.
만약, 만족하는 데이터가 있다면 UPDATE 를, 없다면 INSERT 합니다.
예제(ex #1
mysql> REPLACE tb_name SET field_name = field_name+1;

예제(ex #2
mysql> REPLACE INTO tb_name set name = 'myname', cnt = DEFAULT(cnt) + 1, date = '20111010';

실수로 사용자가 2번의 쿼리를 날렸다 하더라도, row는 1개만 출력되고, cnt = 2가 되지 않습니다.
예제(ex #3
mysql> REPLACE INTO tb_name set name = 'myname', cnt = DEFAULT(cnt) + 1;
mysql> REPLACE INTO tb_name set name = 'myname', cnt = DEFAULT(cnt) + 1;

mysql> SELECT cnt FROM tb_name WHERE name='myname';
-> 1

만약, PRIMARY, UNIQUE 인덱스를 가진 열이 아니라면 결과는 달라진다는 점에 주의할 필요가 있습니다.
예제(ex #4
mysql> REPLACE INTO tb_name set name = 'myname', cnt = DEFAULT(cnt) + 1;
mysql> REPLACE INTO tb_name set name = 'myname', cnt = DEFAULT(cnt) + 1;

mysql> SELECT cnt FROM tb_name WHERE name='myname';
-> 2
 
다음은 str_replace 와 흡사합니다.
예제(ex #5 
mysql> SELECT REPLACE('mysql.com', 'm', 'www.m');
-> www.mysql.cowww.m


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

mysql> SELECT REPLACE('www.mysql.com', 'com', 'co.kr');
-> www.mysql.co.kr

<script>태그가 있다면 공백으로 처리해 버립니다.
예제(ex #6
UPDATE tb_name SET field_name = REPLACE(field_name,'<script>','');
 
 

댓글목록

등록된 댓글이 없습니다.


사이트소개 개인정보취급방침 서비스이용약관 Copyright © kkujunhee.net All rights reserved.
상단으로

개인정보관리책임자 : 관리자

모바일 버전으로 보기