表结构
CREATE TABLE `goods` (
`id` int NOT NULL ,
`name` varchar(25) ,
`updateat` datetime
)现在,在表中有这样的数据。

当我想插入像(1,'new','2021-12-18 12:00:00').First这样的新数据时,确定表中是否有与要插入的数据相同的数据(除了更新时间),然后比较更新时间,保留最新的数据。
我想知道如何使用sql来实现这个功能。
发布于 2021-12-18 12:42:23
首先将主键添加到表中:
CREATE TABLE goods (
id int NOT NULL ,
name varchar(25) ,
updateat datetime,
PRIMARY KEY (id, name)
)然后使用ON DUPLICATE KEY UPDATE:
insert into goods values (1, 'john', '2021-01-02');
insert into goods (id, name, updateat)
values (1, 'john', '2021-01-03')
ON DUPLICATE KEY UPDATE
updateat = greatest('2021-01-03',
(select updateat from (select * from goods as g) as g where id = 1))https://stackoverflow.com/questions/70403281
复制相似问题