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);
您要达到的目标是什么?以前的价值是什么意思?也许你需要插入ingore,而不是插入...重复密钥更新? –
忘记在create table语句中描述键值,抱歉。现在更清楚了吗? – d0rc
也许你只需要切换你的更新语句:重复键更新value1 = if(value0 <> values(value0),value0,value1),value0 = values(value0); –