[MySQL]문자열 변환


데이터 베이스에 다음과 같은 문자열을 가지고 있는 필드가 있다고 생각하자


URL 

 http://www.blog.com/articles/update/1

  http://www.blog.com/articles/update/2

  http://www.blog.com/articles/update/345

  http://www.blog.com/articles/update/title-like-this



이 필드의 article을 다른 문자로 변환한다면 다음과 같은 스크립트를 이용할 수 있다.



예제코드

UPDATE POST_TABLE
SET URL= REPLACE(URL, '/articles/', '/pages/')
WHERE URL LIKE '%/articles/%'


그럼 문자열은 아래와 같이 변경 된다.


 URL( 변경전)

 URL(변경후)

 http://www.blog.com/articles/update/1

 http://www.blog.com/pages/update/1

 http://www.blog.com/articles/update/2

  http://www.blog.com/pages/update/2

 http://www.blog.com/articles/update/345

 http://www.blog.com/pages/update/345

 http://www.blog.com/articles/update/title-like-this

 http://www.blog.com/pages/update/title-like-this


MySQL의 REPLACE 함수는 다음과 같이 사용한다.



REPLACE(str, from_str, to_str)

str : 전체 문자열 또는 문자열이 있는 필드

from_str : 이전 문자열

to_str : 바꿀 문자열

mysql 페이지 참고





'DATABASE' 카테고리의 다른 글

[MySQL] Select Insert문  (0) 2017.12.26
[오라클] DATE 날짜 타입  (2) 2017.12.11
[MySQL]기본쿼리 (UPDATE)  (0) 2017.12.08
[ORACLE] 모든 테이블 이름 가져오는 쿼리  (0) 2017.12.05
[MySQL] 기본 쿼리 (SELECT)  (0) 2017.12.02

MySQL 기본쿼리 (UPDATE)


update 쿼리

update문은 테이블의 값을 수정할 때 사용한다.


다음과 같이 사용한다.


UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET assignment_list [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] value: {expr | DEFAULT} assignment: col_name = value assignment_list: assignment [, assignment] ...



참고 - mysql 홈페이지


update 쿼리 예제


UPDATE
    USER_TABLE
SET
    NAME='HONG',
    AGE=20,
    GENDER='male',
    BIRTHDAY=STR_TO_DATE('2017,12,25', '%Y, %m, %d')
WHERE
     IDX='idx00000101'


기본 업데이트 문 입니다.


update를 활용한 다중행 변경

UPDATE
    USER_TABLE
SET
    TYPE='ADULT'
WHERE
     AGE>18

AGE컬럼의 값이 18 이상인 행을 모두 TYPE을 Adult로 변경합니다. 

이런방법으로 여러개의 행을 같은 값으로 변경할 수 있습니다.

update를 이용한 조건 외 변경


UPDATE
    USER_TABLE
SET
    TYPE='CHILD'
WHERE
     TYPE<>'ADULT'

위 방법을 이용하여 type이 adult외의 컬럼의 값을 child로 변경 할 수 있습니다.
지정한 값 외의 다른 행의 값을 바꾸는데 쓰입니다.


주의


업데이트를 실행할 때는 한번에 커밋까지 이루어지는 일이 없도록 합시다.


꼭 WHERE절이 제대로 들어가 있는지 확인 합니다.


만약 위의 두 조건을 어기고 실행하면 실제 데이터가 훼손되어 롤백을 할 수도 없게 됩니다.


이 점을 꼭 주의 해야 합니다.

'DATABASE' 카테고리의 다른 글

[MySQL] Select Insert문  (0) 2017.12.26
[MySQL] String Replace  (0) 2017.12.20
[오라클] DATE 날짜 타입  (2) 2017.12.11
[ORACLE] 모든 테이블 이름 가져오는 쿼리  (0) 2017.12.05
[MySQL] 기본 쿼리 (SELECT)  (0) 2017.12.02

+ Recent posts