복붙노트

[SQL] SELECT와 INSERT

SQL

SELECT와 INSERT

나는 삽입이 선택을 사용하는 쿼리를 가지고 :

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

그것은 단지 쿼리에 다른 뭔가에 삽입은 "이름, 위치"및 세트 GID를 선택 할 수 있습니까?

해결법

  1. ==============================

    1.예, 절대적으로, 그러나 당신의 구문을 확인합니다.

    예, 절대적으로, 그러나 당신의 구문을 확인합니다.

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

    당신은 물론, 단지 하나, 그 자리에 GID와 같은 유형의 상수를 넣을 수 있습니다. 그리고, 난 그냥 CID 값을했다.

  2. ==============================

    2.네, 그렇습니다. 당신은 쓸 수 있습니다 :

    네, 그렇습니다. 당신은 쓸 수 있습니다 :

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

    또는 다른에서 값이 선택의 조인 얻을 수 있습니다 ...

  3. ==============================

    3.올바른 구문 : 선택 철자가 틀렸다

    올바른 구문 : 선택 철자가 틀렸다

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

    4.물론, 당신은 GID에 사용할 무엇을 원하는가? 정적 값, PHP var에 ...

    물론, 당신은 GID에 사용할 무엇을 원하는가? 정적 값, PHP var에 ...

    1234 정적 값이 같을 수 있습니다 :

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

    5.나는 올바른 구문을 참조하십시오 INSERT 문이 잘못 생각 : http://dev.mysql.com/doc/refman/5.1/en/insert.html

    나는 올바른 구문을 참조하십시오 INSERT 문이 잘못 생각 : http://dev.mysql.com/doc/refman/5.1/en/insert.html

    편집하다: 앤드류로 이미 지적 ...

  6. ==============================

    6.물론 당신은 할 수.

    물론 당신은 할 수.

    다른 테이블에 INSERT INTO SELECT 문을 복사 한 테이블에서 데이터를 삽입하여 소스 및 대상 테이블의 데이터 유형과 일치가 필요합니다 한가지는 그러나 주목해야한다. 주어진 테이블 컬럼의 데이터 유형이 일치하지 않는 경우, MySQL 서버는 SQL 오류 (1366)가 발생합니다 (즉 INT, 또는 TINYINT intoINT에 VARCHAR를 삽입하려고).

    그러니 조심해.

    다음은 명령의 구문은 다음과 같습니다

    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의 동의어입니다 ()) 매우 유용합니다.

  7. ==============================

    7.쿼리에 대한 올바른 구문은 다음과 같습니다

    쿼리에 대한 올바른 구문은 다음과 같습니다

    INSERT INTO courses (name, location, gid) 
    SELECT (name, location, gid) 
    FROM courses 
    WHERE cid = $cid
    
  8. from https://stackoverflow.com/questions/5391344/insert-with-select by cc-by-sa and MIT license