MySQL: SQL 쿼리에 각 결과의 레코드를 삽입하려면 어떻게 해야 합니까?
선택사항이 있다고 합니다.
SELECT DISTINCT id, customer_id, domain FROM config WHERE type = 'foo';
몇 가지 기록이 반환됩니다.
결과 세트의 reach 행에 대해 다음과 같이 삽입하려면 어떻게 해야 합니까?
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"에서 다른 행을 선택하고 동일한 행을 동일한 테이블에 삽입할 수 있습니다.그들은 이미 저 안에 있어요할 것이 없다.
"domain" 열의 일부 또는 모든 값을 업데이트하려는 경우를 제외하고.그러기 위해서는 실제로 어떤 일을 한 UPDATE 스테이트먼트가 필요합니다.
언급URL : https://stackoverflow.com/questions/5247530/mysql-how-to-insert-a-record-for-each-result-in-a-sql-query
'source' 카테고리의 다른 글
예외 발생 시 JavaScript 스택트레이스를 취득하려면 어떻게 해야 하나요? (0) | 2022.10.20 |
---|---|
한 번의 ng클릭으로 여러 기능을 추가하는 방법 (0) | 2022.10.20 |
Java 정규식 OR 연산자 (0) | 2022.10.19 |
mysqldump 문제: "--defaults-extra-file" 옵션이 예상대로 작동하지 않습니다. (0) | 2022.10.19 |
Pyplot을 사용하여 모든 하위구 위에 단일 주 제목을 설정하는 방법은 무엇입니까? (0) | 2022.10.19 |