4th Street Bar Hive-Bar

Hive-Bar Powered by Hive beta-fdb5b5b

Community post

[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";
17 upvotes $0.01

Replies (0)

Conversation

No replies yet

Replies will appear here as people join the conversation.

Review before signing

Posting as . Signing with . Keychain permission: Posting. Hive Keychain will ask you to approve this action next.


  
Technical details

Operation fingerprint: