복붙노트

[SQL] MySQL의 삽입 어디 쿼리

SQL

MySQL의 삽입 어디 쿼리

이 쿼리 잘못은 무엇입니까 :

INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;

그것은 WHERE 절없이 작동합니다. 나는 내 SQL을 잊은 듯했습니다 ..

해결법

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

    1.그것이 실패의 약자로 MySQL INSERT 구문 쿼리 수 있도록 WHERE 절을 지원하지 않습니다. 당신의 id 컬럼이 고유 또는 기본 키입니다 가정 :

    그것이 실패의 약자로 MySQL INSERT 구문 쿼리 수 있도록 WHERE 절을 지원하지 않습니다. 당신의 id 컬럼이 고유 또는 기본 키입니다 가정 :

    당신이 ID 1에 새 행을 삽입하려는 경우 당신이 사용되어야한다 :

    INSERT INTO Users(id, weight, desiredWeight) VALUES(1, 160, 145);
    

    당신이 ID 1과 기존 행의 무게 / desiredWeight 값을 변경하려는 경우 당신이 사용되어야한다 :

    UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;
    

    당신은 또한 INSERT를 사용하려면 ... ON DUPLICATE KEY 구문 같은 :

    INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145
    

    심지어 같은 :

    INSERT INTO Users SET id=1, weight=160, desiredWeight=145 ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145
    

    그것은 또한 당신의 ID 열이 자동 증가 열 경우 다음 잘 모두 함께 당신의 INSERT에서 그것을 생략하고 정상으로 MySQL의 증가를하게 같은 수 있음을 유의해야합니다.

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

    2.당신은 VALUES 절과 함께 WHERE 절을 결합 할 수 없습니다. 내가 aware- 나처럼 당신은 지금까지와 같은 두 가지 옵션이 있습니다

    당신은 VALUES 절과 함께 WHERE 절을 결합 할 수 없습니다. 내가 aware- 나처럼 당신은 지금까지와 같은 두 가지 옵션이 있습니다

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

    3.당신은 UPDATE 쿼리의 WHERE 절을 사용합니다. 삽입 할 때 행이 존재하지 않는다고 가정합니다.

    당신은 UPDATE 쿼리의 WHERE 절을 사용합니다. 삽입 할 때 행이 존재하지 않는다고 가정합니다.

    영업 이익의 문은 다음이 될 것입니다;

    삽입하거나 업데이트 할 경우 MySQL의에서, 당신은이 WHERE 절을 사용하여 쿼리 REPLACE 사용할 수 있습니다. WHERE이 존재하지 않는 경우, 그렇지 않으면 업데이트, 삽입합니다.

    편집하다

    나는 빌 Karwin의 포인트는 의견에서 위로 당겨 매우 분명하게 할만큼 중요하다고 생각합니다. 감사 빌, 그것은 너무 오래 내가 MySQL과 일한 이래로, 나는 교체 문제를 가지고 있음을 기억했지만, 나는 그들이 무엇인지 잊어 버렸습니다. 나는 그것을보고해야합니다.

    MySQL의의이 작품을 교체하는 방법을 그건 아니다. 그것은 INSERT 하였다 (행이 존재하지 않는 경우에는 무 조작하지 않을 수있는)가 DELETE를한다. 결과 VI를 생각해보십시오. 트리거 및 외래 키 종속성. 대신, INSERT ... ON DUPLICATE KEY UPDATE를 사용합니다.

  4. ==============================

    4.나는 삽입은 WHERE 절을 가지고 있다고 생각하지 않습니다.

    나는 삽입은 WHERE 절을 가지고 있다고 생각하지 않습니다.

  5. ==============================

    5.당신이 하위 선택 문에 대한 WHERE 조건을 사용할 수 있기 때문에 조건이 적용됩니다. 당신은 하위 선택을 사용하여 복잡한 삽입을 수행 할 수 있습니다.

    당신이 하위 선택 문에 대한 WHERE 조건을 사용할 수 있기 때문에 조건이 적용됩니다. 당신은 하위 선택을 사용하여 복잡한 삽입을 수행 할 수 있습니다.

    예를 들면 :

    INSERT INTO suppliers
    (supplier_id, supplier_name)
    SELECT account_no, name
    FROM customers
    WHERE city = 'Newark';
    

    삽입 문에서 "선택"을 배치하여 신속하게 배수 삽입을 수행 할 수 있습니다.

    삽입의이 유형으로, 당신은 행의 수는 삽입을 확인하실 수 있습니다. 당신은 삽입을 수행하기 전에 다음과 같은 SQL 문을 실행하여 삽입 할 행의 수를 확인할 수 있습니다.

    SELECT count(*)
    FROM customers
    WHERE city = 'Newark';
    

    당신은 당신이이 조건을 EXISTS 사용하여 중복 된 정보를 삽입하지 않도록 할 수 있습니다.

    당신이 CLIENT_ID의 기본 키와 클라이언트라는 테이블이 있다면 예를 들어, 다음 문을 사용할 수 있습니다 :

    INSERT INTO clients
    (client_id, client_name, client_type)
    SELECT supplier_id, supplier_name, 'advertising'
    FROM suppliers
    WHERE not exists (select * from clients
    where clients.client_id = suppliers.supplier_id);
    

    이 문은 부속으로 여러 레코드를 삽입합니다.

    단일 레코드를 삽입하고 싶다면, 다음과 같은 문장을 사용할 수 있습니다 :

    INSERT INTO clients
    (client_id, client_name, client_type)
    SELECT 10345, 'IBM', 'advertising'
    FROM dual
    WHERE not exists (select * from clients
    where clients.client_id = 10345);
    

    이중 테이블의 사용은 값이 현재 테이블에 저장되지 않은 경우에도, 당신은 select 문에 값을 입력 할 수 있습니다.

    where 절에 삽입하는 방법을 참조

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

    6.이 질문에 대한 정답은 다음과 같이 STH 될 것입니다 :

    이 질문에 대한 정답은 다음과 같이 STH 될 것입니다 :

    ㅏ). IF는 삽입하기 전에 선택합니다 :

    INSERT INTO Users( weight, desiredWeight ) 
      select val1 , val2  from tableXShoulatNotBeUsers
      WHERE somecondition;
    

    비). 기록은 이미 삽입 대신 사용 업데이트를 존재하는 경우 :

     INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;
    

    해야한다

    Update Users set weight=160, desiredWeight=145  WHERE id = 1;
    

    씨). 업데이트하거나 동시에 삽입 할 경우

    Replace Users set weight=160, desiredWeight=145  WHERE id = 1;
    
    Note):- you should provide values to all fields else missed field in query 
            will be set to null
    

    디). 당신은 같은 테이블에서 레코드를 복제 할 경우, 당신이 때문에 삽입되는에 당신이 테이블에서 선택할 수없는 기억

     create temporary table xtable ( weight int(11), desiredWeight int(11) ;
    
     insert into xtable (weight, desiredWeight) 
        select weight, desiredWeight from Users where [condition]
    
     insert into Users (weight, desiredWeight) 
        select weight , desiredWeight from xtable;
    

    나는이 꽤 커버 대부분의 시나리오를 생각한다

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

    7.INSERT 문을 수행 할 때 당신은 단순히 WHERE를 사용할 수 없습니다 :

    INSERT 문을 수행 할 때 당신은 단순히 WHERE를 사용할 수 없습니다 :

     INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;
    

    해야한다:

     INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 );
    

    WHERE 부분은 SELECT 문에서 작동합니다 :

    SELECT from Users WHERE id = 1;
    

    또는 UPDATE 문에서 :

    UPDATE Users set (weight = 160, desiredWeight = 145) WHERE id = 1;
    
  8. ==============================

    8.테이블에 행을 추가 =로 삽입

    테이블에 행을 추가 =로 삽입

    업데이트 = 갱신 특정 행.

    where 절은 삽입에 무엇을 설명하는 것인가? 그것은 일치 아무것도하지 않는 행은 (아직) 존재하지 않는 ...

  9. ==============================

    9.당신은 사용자 입력을 기반으로 조건 INSERT 작업을 수행 할 수 있습니다. 입력이 '$ userWeight'와 '$ userDesiredWeight을'바르 경우에만 쿼리를 삽입 할 것입니다 빈 아니다

    당신은 사용자 입력을 기반으로 조건 INSERT 작업을 수행 할 수 있습니다. 입력이 '$ userWeight'와 '$ userDesiredWeight을'바르 경우에만 쿼리를 삽입 할 것입니다 빈 아니다

    INSERT INTO Users(weight, desiredWeight )
    select '$userWeight', '$userDesiredWeight'  
    FROM (select 1 a ) dummy
    WHERE '$userWeight' != '' AND '$userDesiredWeight'!='';
    
  10. ==============================

    10.실제로 where 절을 가질 수있는 상황 INSERT에 따라 달라집니다.

    실제로 where 절을 가질 수있는 상황 INSERT에 따라 달라집니다.

    예를 들어, 당신은 양식에서 값을 일치하는 경우.

    Consider INSERT INTO Users(name,email,weight, desiredWeight) VALUES (fred,bb@yy.com,160,145) WHERE name != fred AND email != bb@yy.com
    

    그것은 이해가되지 않습니다 만들까요?

  11. ==============================

    11.가장 간단한 방법은 중요한 제약 조건을 위반하는 IF를 사용하는 것입니다. 이것은 단지 IGNORE INSERT에 대한 작동하지만 당신이 INSERT에 제약 조건을 사용할 수 있습니다.

    가장 간단한 방법은 중요한 제약 조건을 위반하는 IF를 사용하는 것입니다. 이것은 단지 IGNORE INSERT에 대한 작동하지만 당신이 INSERT에 제약 조건을 사용할 수 있습니다.

    INSERT INTO Test (id, name) VALUES (IF(1!=0,NULL,1),'Test');
    
  12. ==============================

    12.WHERE 절 후에는 조건을 넣어, 그것은 하나 가져 오는 데이터 또는 행을 업데이트하는 데 사용됩니다. 데이터를 삽입하는 경우,은 행이 존재하지 않는다고 가정한다.

    WHERE 절 후에는 조건을 넣어, 그것은 하나 가져 오는 데이터 또는 행을 업데이트하는 데 사용됩니다. 데이터를 삽입하는 경우,은 행이 존재하지 않는다고 가정한다.

    그래서, 질문은, ID가 1 인 모든 행이있다? 그렇게하면, MySQL UPDATE, 다른 사용 MySQL은 INSERT를 사용합니다.

  13. ==============================

    13.대신 INSERT 문을 사용 UPDATE 문은 더 나은 데이터를 삽입하기위한 어떤 특정 기록을 지정하지 않은 경우.

    대신 INSERT 문을 사용 UPDATE 문은 더 나은 데이터를 삽입하기위한 어떤 특정 기록을 지정하지 않은 경우.

    당신이 질문에 쓴이 유형의 쿼리는 더미 쿼리 같다.

    쿼리는 다음과 같습니다 -

    INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;
    

    여기에서, 당신은 그래서 더 나은 당신이 INSERT.You의 경우 절을 UPDATE를 사용한다 사용하지 않는 것이 좋습니다 기존 record.It을 업데이트하는 UPDATE 문을 사용하여 ID = 1을 지정합니다.

    지금 업데이트 쿼리를 사용 : -

    UPDATE Users SET weight=160,desiredWeight=145 WHERE id=1;
    
  14. ==============================

    14.대답은 확실히 더 없습니다.

    대답은 확실히 더 없습니다.

    INSERT INTO 후 WHERE 절을 추가 ... VALUES 단지 ... 유효하지 않은 SQL이며, 구문 분석하지 않습니다.

    MySQL이 반환 된 오류는 다음과 같습니다

    mysql> INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = 1' at line 1
    

    오류 메시지의 가장 중요한 부분입니다

    ... syntax to use near 'WHERE id = 1' ...
    

    이는 쇼 파서 여기에서 찾아 낼 것으로 예상하지 않은 특정 부분 : 절.

  15. ==============================

    15.그 totall의 잘못. INSERT 쿼리가 WHERE 절을하지 않습니다 만 업데이트 쿼리가 있습니다. 데이터를 추가 할 경우 ID는 = 1 다음 쿼리는 어디 될 것입니다

    그 totall의 잘못. INSERT 쿼리가 WHERE 절을하지 않습니다 만 업데이트 쿼리가 있습니다. 데이터를 추가 할 경우 ID는 = 1 다음 쿼리는 어디 될 것입니다

    UPDATE Users SET weight=160, desiredWeight= 145 WHERE id = 1;
    
  16. ==============================

    16.아니 내가 아는 한 당신은이 쿼리에 WHERE 절을 추가 할 수 없습니다. 난 정말 당신이 어쨌든 그것을 필요로 왜 안이기 때문에 어쩌면 내가 너무 내 SQL을 잊어 버렸습니다.

    아니 내가 아는 한 당신은이 쿼리에 WHERE 절을 추가 할 수 없습니다. 난 정말 당신이 어쨌든 그것을 필요로 왜 안이기 때문에 어쩌면 내가 너무 내 SQL을 잊어 버렸습니다.

  17. ==============================

    17.당신은 삽입 문에서 WHERE 조건을 사용하지 말아야합니다. 당신이 않는 update 문에 삽입 사용하려면 다음 기존 레코드를 업데이트합니다.

    당신은 삽입 문에서 WHERE 조건을 사용하지 말아야합니다. 당신이 않는 update 문에 삽입 사용하려면 다음 기존 레코드를 업데이트합니다.

    당신이 삽입 문에서 where 절을해야하는 이유 사실은 내가 알 수 있습니까 ??

    어쩌면 내가 당신에게 더 나은 옵션을 제안 할 수있는 이유에 따라.

  18. ==============================

    18.나는 당신의 최선의 선택 사용 대신 교체 생각 INSERT

    나는 당신의 최선의 선택 사용 대신 교체 생각 INSERT

  19. ==============================

    19.심지어 문자 그대로 ... 이해가되지 않습니다

    심지어 문자 그대로 ... 이해가되지 않습니다

    INSERT 수단은 새 행을 추가하고 당신이 말할 때 당신은 행 당신이 SQL에 대해 얘기 정의 WHERE.

    그래서 새 행을 추가하면 기존 행에 조건 수 없습니다.

    당신은 다음에서 선택할 수 있습니다 :

    A. 사용 UPDATE 대신 INSERT

    절 (난 그냥 ... 그것을 말하고있다) 또는 당신이 진짜 하나의 문에서 INSERT 및 WHERE를 사용하는 바인딩하는 경우는 그에만 INSERT..SELECT 절을 통해 수행 할 수 있습니다 B. 사용 INSERT 및 제거 ...

    INSERT INTO Users( weight, desiredWeight ) 
    SELECT FROM Users WHERE id = 1;
    

    그러나 이것은 완전히 다른 목적을 제공하고 기본 키로 ID를 정의한 경우이 삽입 실패, 그렇지 않으면 새 행이 ID로 삽입됩니다 = 1이됩니다.

  20. ==============================

    20.나는 이것이 이전 게시물임을 알고 있지만, 내가 무슨 희망이 여전히 것이다 도움말 누군가가, 간단한 예입니다 희망 :

    나는 이것이 이전 게시물임을 알고 있지만, 내가 무슨 희망이 여전히 것이다 도움말 누군가가, 간단한 예입니다 희망 :

    배경:

    동일한 사용자가 여러 값으로 여러 번 나열되어 나는, 따라서 UPDATE가 내 경우에는 이해가되지하는 새로운 기록을 만들고 싶어 나는 내가 할 것처럼 특정 사용자를 해결하기 위해 필요한 : 나는 많은 경우에 많은 있었다 WHERE 절을 사용.

    INSERT into MyTable(aUser,aCar)
    value(User123,Mini)
    

    당신이 정말로 where 절을 필요로하지 않도록이 구조를 사용하여 실제로 특정 사용자 (다른 레코드가 user123 등)를 대상으로, 나는 생각한다.

    출력 수 :

    aUser   aCar
    user123 mini
    user123 HisOtherCarThatWasThereBefore
    
  21. ==============================

    21.방법이 INSERT와 WHERE는 사용하기

    방법이 INSERT와 WHERE는 사용하기

    INSERT INTO MYTABLE SELECT 953 '안녕하세요', 43 WHERE 0 (SELECT COUNT (*) FROM MYTABLE WHERE MYID = 953); 존재 테스트와 같은이 경우 인도 표준시합니다. 당신이 두 번 이상 실행하면 예외가 없습니다 ...

  22. ==============================

    22.포스트 방법을 사용하여 문에 MySQL의 삽입에 대한 올바른 구문은 다음과 같습니다

    포스트 방법을 사용하여 문에 MySQL의 삽입에 대한 올바른 구문은 다음과 같습니다

    $sql="insert into ttable(username,password) values('$_POST[username]','$_POST[password]')";
    
  23. ==============================

    23.나는 우리가 삽입 문에 where 절을 사용할 수있는 것 같아요

    나는 우리가 삽입 문에 where 절을 사용할 수있는 것 같아요

  24. ==============================

    24.

    INSERT INTO Users(weight, desiredWeight )
    SELECT '$userWeight', '$userDesiredWeight'  
    FROM (select 1 a ) dummy
    WHERE '$userWeight' != '' AND '$userDesiredWeight'!='';
    
  25. ==============================

    25.당신은 함께 INSERT 및 WHERE를 사용할 수 없습니다. 당신은 코드를 다음과 같은 특정 분야에서 특정 열을 추가 값을 UPDATE 절을 사용할 수 있습니다;

    당신은 함께 INSERT 및 WHERE를 사용할 수 없습니다. 당신은 코드를 다음과 같은 특정 분야에서 특정 열을 추가 값을 UPDATE 절을 사용할 수 있습니다;

    UPDATE Users
    SET weight='160',desiredWeight ='145'  
    WHERE id =1
    
  26. ==============================

    26.내가 지정하는 행은의 올바른 형태가 값을 삽입 할 수 있다고 생각 :

    내가 지정하는 행은의 올바른 형태가 값을 삽입 할 수 있다고 생각 :

    UPDATE table SET column = value WHERE columnid = 1
    

    그것은 작동, 당신은 마이크로 소프트 SQL 서버에서 작성하는 경우와 유사하다

    INSERT INTO table(column) VALUES (130) WHERE id = 1;
    

    MySQL을 사용하면 테이블을 업데이트해야합니다.

  27. from https://stackoverflow.com/questions/485039/mysql-insert-where-query by cc-by-sa and MIT license