programing

다중 업데이트 mysql

batch 2023. 8. 14. 22:41
반응형

다중 업데이트 mysql

다음 쿼리에 문제가 있습니다.

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

테이블 1개의 필드를 업데이트하려고 합니다. 테이블의 모든 행을 업데이트해야 하므로 UPDATE 문을 사용할 수 없습니다.쿼리 mysql을 실행하려고 하면 다음 오류가 반환됩니다.

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

"table" 및 "field1"은 예제 이름입니다.

--업데이트--

쿼리는 다음과 같습니다.

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

시도해보기도 했습니다.

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

그러나 업데이트된 모든 행에 필드 1 = 10이 있으며, 합계가 작동하지 않습니다.

"table"은 SQL에서 특수/예약된 단어입니다.다른 이름 ex로 변경합니다."내 테이블"

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

이름표를 사용해서도 가능할 것 같은데, 어쨌든 여기 삽입을 사용해서 하는 답이 있습니다.

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

어떤.field1당신은 원하나?아까 그거.SELECT또는 표의 열이 업데이트되고 있습니까?

다음과 같은 정보 대신 이 정보를 사용하는 시기에 대한 설명서를 참조하십시오.

... UPDATE field1 = VALUES(field1) + 10

언급URL : https://stackoverflow.com/questions/44082953/multiple-update-mysql

반응형