programing

SELECT 포함 삽입

prostudy 2022. 9. 6. 21:28
반응형

SELECT 포함 삽입

를 사용하여 삽입하는 쿼리가 있습니다.SELECT스테이트먼트:

INSERT INTO courses (name, location, gid) 
SELECT name, location, gid 
FROM courses 
WHERE cid = $cid

삽입물에 대해 "이름, 위치"만 선택하고 설정할 수 있습니까?gid더 많은 정보를 얻을 수 있을까요?

네, 물론이죠. 하지만 구문을 확인해 보세요.

INSERT INTO courses (name, location, gid)
SELECT name, location, 1
FROM   courses
WHERE  cid = 2

다음과 같은 유형의 상수를 넣을 수 있습니다.gid물론 1명뿐만이 아니라 그 자리에 있습니다.그리고 제가 방금 만든 게cid가치.

네, 그렇습니다.다음과 같이 쓸 수 있습니다.

INSERT INTO courses (name, location, gid) 
SELECT name, location, 'whatever you want' 
FROM courses 
WHERE cid = $ci

또는 선택...의 다른 결합에서 값을 얻을 수 있습니다.

올바른 구문: 선택한 철자가 잘못되었습니다.

INSERT INTO courses (name, location, gid)
SELECT name, location, 'whatever you want' 
FROM courses 
WHERE cid = $ci 

네, gid에 무엇을 사용하시겠습니까? 정적 값, PHP var, ...

스태틱 값 1234는 다음과 같습니다.

INSERT INTO courses (name, location, gid)
SELECT name, location, 1234
FROM courses
WHERE cid = $cid

물론 할 수 있죠.

단, 한 가지 주의할 점이 있습니다.INSERT INTO SELECT스테이트먼트에서는, 1개의 테이블로부터 데이터를 카피해 다른 테이블에 삽입합니다. 경우 소스 테이블과 타깃 테이블의 데이터 타입이 일치해야 합니다.지정된 테이블 열의 데이터 유형이 일치하지 않는 경우(즉, 삽입 시도)VARCHAR안으로INT, 또는TINYINT안으로INT) MySQL 서버가 다음 명령을 실행합니다.SQL Error (1366).

그러니 조심하세요.

명령어 구문은 다음과 같습니다.

INSERT INTO table2 (column1, column2, column3)
SELECT column1, column2, column3 FROM table1
WHERE condition;

사이드 노트:다른 기둥 유형 삽입 문제를 회피하는 방법은 주조물을 사용하는 것입니다.SELECT예를 들어 다음과 같습니다.

SELECT CAST('qwerty' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin;

이 변환(CAST()와 동의어이다CONVERT())는 테이블이 같은 테이블컬럼에 다른 문자셋이 있는 경우 매우 편리합니다(적절하게 처리하지 않으면 데이터가 손실될 수 있습니다).

INSERT 문장이 잘못된 것 같습니다.올바른 구문을 참조해 주세요.http://dev.mysql.com/doc/refman/5.1/en/insert.html

편집: 앤드류가 이미 지적했듯이...

우리 모두 이게 효과가 있다는 걸 알고 있어

INSERT INTO `TableName`(`col-1`,`col-2`)
SELECT  `col-1`,`col-2` 

===========================
아래 방법은 "select" 문이 여러 개 있는 경우 사용할 수 있습니다.그냥 참고용이에요.

INSERT INTO `TableName`(`col-1`,`col-2`)
 select 1,2  union all
 select 1,2   union all
 select 1,2 ;

쿼리에 적합한 구문은 다음과 같습니다.

INSERT INTO courses (name, location, gid) 
SELECT (name, location, gid) 
FROM courses 
WHERE cid = $cid

언급URL : https://stackoverflow.com/questions/5391344/insert-with-select

반응형