나는한다개발 avatar

[MySQL] SELECT 해온 데이터 기반으로 값을 변경해서 INSERT 하기

yjiq150

Published: 28 May 2018 › Updated: 28 May 2018

[MySQL] SELECT 해온 데이터 기반으로 값을 변경해서 INSERT 하기

데이터베이스 작업을 하다보면 기존에 있는 데이터와 동일한 값의 데이터를 생성하거나, 기존에 있는 데이터를 기반으로 약간의 값 변경만을 적용하여 데이터를 생성하고 싶을때가 많다. 각각 경우에 어떻게 해야되는지 한번 살펴보도록 하자.

아래 쿼리를 실행하면 SELECT구문에서 선택된 row들이 바로 INSERT가 된다.

INSERT INTO account (`user_id`, `platform`, `username`, `last_login`, `created_at`)
SELECT `user_id`, `platform`, `username`, `last_login`, `created_at` FROM account WHERE platform="android";

SELECT 구문에서 선택된 row들의 값을 변경해서 다른 값을 INSERT하고 싶다면 다음과같이 필드 이름 대신 원하는 값을 지정해주면 된다. 아래 예제에서 platform 필드에는 iphone이, created_at에서는 DB의 현재 시간이 새롭게 지정되어 INSERT되는것을 알 수 있다.

INSERT INTO account (`user_id`, `platform`, `username`, `last_login`, `created_at`)
SELECT `user_id`, 'iphone', `username`, `last_login`, now() FROM account WHERE platform="android";

Leave [MySQL] SELECT 해온 데이터 기반으로 값을 변경해서 INSERT 하기 to:

Written by

iOS/Web 개발자입니다.

Read more #kr posts


Best Posts From 나는한다개발

We have not curated any of yjiq150's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From 나는한다개발