반응형
MySQL : SQL 쿼리의 각 결과에 대한 레코드를 삽입하는 방법은 무엇입니까?
내가 선택했다고 말해
SELECT DISTINCT id, customer_id, domain FROM config WHERE type = 'foo';
일부 레코드를 반환합니다.
결과 세트에서 도달 행에 대한 삽입을 어떻게 할 수 있습니까?
INSERT INTO config (id, customer_id, domain) VALUES (@id, @customer_id, 'www.example.com');
여기서 @id
및 @customer_id
결과 집합의 행의 필드는?
편집 : 나는 그것을 복제하고 싶지 않았지만 domain
대신 필드에 새 값을 삽입하십시오 . 그럼에도 불구하고 평범한 얼굴 손바닥 상황 ;-) 감사합니다!
다음과 같이 간단합니다.
INSERT INTO config (id, customer_id, domain)
SELECT DISTINCT id, customer_id, domain FROM config;
" www.example.com
"을 도메인으로 원하는 경우 다음 을 수행 할 수 있습니다.
INSERT INTO config (id, customer_id, domain)
SELECT DISTINCT id, customer_id, 'www.example.com' FROM config;
INSERT INTO config (id, customer_id, domain)
SELECT id, customer_id, 'www.example.com' FROM (
SELECT DISTINCT id, customer_id, domain FROM config
WHERE type = 'foo'
) x;
INSERT INTO Config (id, customer_id, domain)
SELECT DISTINCT id, customer_id, 'www.example.com' FROM config
이 구문에 대한 MySQL 문서는 다음과 같습니다.
http://dev.mysql.com/doc/refman/5.1/en/insert-select.html
편집 -@Krtek의 답변에 대한 의견을 읽은 후.
삽입 대신 업데이트를 요청하는 것 같습니다.
update config set domain = 'www.example.com'
이렇게하면 중복 항목을 만들지 않고 도메인이 'www.example.com'인 구성 테이블의 모든 기존 레코드가 업데이트됩니다.
오래된 답변 -
다음과 같이 사용할 수 있습니다.
INSERT INTO config (id, customer_id, domain)
select id, customer_id, domain FROM config
참고 :-ID가 기본 키로 있으면 작동하지 않습니다.
다음 SQL 문을 실행합니다.
-- Do nothing.
"config"에서 고유 한 행을 선택하고 동일한 행을 동일한 테이블에 삽입하려고합니다. 그들은 이미 거기에 있습니다. 할 것이 없다.
실제로 "도메인"열의 일부 또는 모든 값을 업데이트하려는 경우가 아니면. 실제로 뭔가를 수행하는 UPDATE 문이 필요합니다.
반응형
'program story' 카테고리의 다른 글
클래스 경로 리소스 (XML 파일)에서 입력 스트림 가져 오기 (0) | 2020.10.14 |
---|---|
Integer와 int를 비교하면 Java에서 NullPointerException이 발생할 수있는 이유는 무엇입니까? (0) | 2020.10.14 |
PHP-클래스 내부에 상수 정의 (0) | 2020.10.14 |
로컬 mongo db를 시작 / 실행할 수 없습니다. (0) | 2020.10.14 |
Apache Spark : Python 3에서 pyspark를 사용하는 방법 (0) | 2020.10.14 |