같은 테이블의 한 열에서 다른 열로 데이터를 복사하려면 어떻게해야합니까?


답변:


466

이건 어때요

UPDATE table SET columnB = columnA;

모든 행이 업데이트됩니다.


1
이전 값을 다른 열로 전송하고 첫 번째 값을 업데이트하려는 경우에도 작동합니다 UPDATE table SET columnA = 'new value', columnB = columnA. 다른 답변과 마찬가지로 WHERE 절을 잊지 말고 필요한 것만 업데이트하십시오.
Carl di Ortus

5
답이 매우 간단 할 때 각 레코드에서 루프를 수행하는 복잡한
프로세스에서

6
@deFreitas 현명한 사람이 나에게 말했다 : 당신이 SQL에서 무언가를 달성하기 위해 루프를 작성하려고 생각하고 있다면 잘못하고 있습니다.
다니엘 패트릭

95
UPDATE table_name SET
    destination_column_name=orig_column_name
WHERE condition_if_necessary

10
@ Mark, 이것은 실제로 의미가 있습니다. 왜 이것이 다운 투표입니까? 하나의 열에서 다른 열로 날짜 값을 복사 해야하는 상황이 있었으며 일부 열에 만 적용되며 전부는 아닙니다. 따라서 성명서에 WHERE가 있어야합니다.
finnTheHumin

5
@finnTheHuman이 질문은 이전 답변이 올바르게 대답하는 "모든 레코드에서 데이터 복사"방법을 묻습니다. 이렇게하면 아무것도 추가되지 않습니다
mmmmmm

7
@Mark "이것은 기존의 대답과 어떻게 다릅니 까?"에는 WHERE 절이 있습니다. "이것은 아무것도 추가하지 않습니다"라고 동의하지 않습니다. WHERE 절 IF NECESSARY를 포함시키는 것이 좋습니다. 우리는 답을 내리는 일에 책임을 져야합니다. haters gon 'hate
finnTheHumin

내 경우에는 last_seen 열을 추가했습니다. UPDATE user SET last_seen = first_seen WHERE last_seen IS NULL
luckydonald

나는 당신 중 하나에 동의하지 않습니다. 그러나 누가 말하고 싶지 않습니까!. 절은 치료처럼 작용합니다
앤드류의 날

0

안전 모드를 사용하지 않으면 해당 열의 모든 행이 업데이트됩니다.

UPDATE table SET columnB = columnA;

안전 모드가 활성화 된 경우 where 절을 사용해야합니다. 기본 키를 0보다 크게 사용하면 기본적으로 모든 것이 업데이트됩니다.

UPDATE table SET columnB = columnA where table.column>0;

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.