2
왜이 같은 테이블 :mysql, '중복 키 업데이트'저장소에 삽입하는 방법 prev. 가치?
create table tbl (
id int not null auto_increment,
key1 int not null,
key2 int not null,
value0 double,
value1 double,
key(id),
unique(key1,key2)
);
다음 쿼리는 이전 저장되지 않습니다. 기존 레코드를 업데이트 할 때 'value0'의 값을 'value1'로 변경 하시겠습니까? 전혀 가능합니까?
insert into tbl (key1, key2, value0, value1)
values (...), (...)
, ...
, (...)
on duplicate key update value0=values(value0), value1=if(value0<>values(value0),value0, value1);
달성하려는 목표는 무엇입니까? 이전의 가치는 무엇을 의미합니까? 어쩌면 당신은 삽입, 삽입하지 ... 중복 키 업데이트에 필요 한가? –
미안, create table statement에 키를 기술하는 것을 잊어 버렸습니다. 지금은 더 명확한가요? – d0rc
어쩌면 당신은 단지 업데이트 문장을 전환 할 필요가 있습니다 : 중복 키 업데이트 value1 = if (value0 <> values (value0), value0, value1), value0 = values (value0); –