2017-05-20 2 views
1

여러 업데이트 : 1 개 테이블의 필드를 업데이트하기 위해 노력하고있어나는 다음과 같은 쿼리에 문제가 MySQL의

insert into table 
select * 
from table 
on duplicate key update field1 = field1 + 10 

, 나는 모든 행을 업데이트해야하기 때문에이 UPDATE 문을 사용할 수 없습니다 물론을 탁자. 내가 쿼리 mysql을 나에게 오류를 반환 실행하려고 할 때 :

ERROR 1052 (23000): Column 'field1' in field list is ambiguous 

"표"와 "필드 1"입니다 예를 들어 이름

--UPDATE--

쿼리도 될 수있다 :

insert into table 
select * 
from table 
where field2 < 1000 
on duplicate key update field1 = field1 + 10 

난 tryed :

update table 
set field1 = field1 + 10 
where field2 < 1000 

업데이트 된 모든 행은 field1 = 10이고 합계가 작동하지 않습니다.

+2

'업데이트 테이블 설정 필드 1 = 필드 1 + 10' 잘못 무엇입니까? WHERE 절이 없으면 모든 행이 업데이트됩니다. – Wyzard

+0

filed1을 지정해야합니다. 두 테이블 모두 fields1이 (가) –

+0

@ mj.84이므로 정확히 일치해야합니다. – big

답변

1

"table"은 SQL의 특수/예약어입니다. 다른 이름으로 변경하십시오. 예. "mytable"

UPDATE mytable 
SET 
    field1 = field1 + 10 
WHERE 
    field2 < 1000; 
0

이름 테이블을 사용하여 수행 할 수 있다고 생각합니다. 어쨌든 여기서 사용하는 대답은 삽입을 사용하는 것입니다.

INSERT INTO table (id, field1, field2) VALUES(1, "value1","value2") ON 
DUPLICATE KEY UPDATE field1= field1+10 WHERE field2 < 1000 
0

어느 field1을 원하십니까? SELECT의 테이블 또는 테이블의 열이 업데이트되고 있습니까?

대신 당신이 무슨이를 사용하는 경우에 대한 설명서를 참조하십시오 :

... UPDATE field1 = VALUES(field1) + 10 
관련 문제