首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql合并相同的数据,并在稍后保持更新

问mysql合并相同的数据,并在稍后保持更新
EN

Stack Overflow用户
提问于 2021-12-18 12:05:40
回答 1查看 73关注 0票数 3

表结构

代码语言:javascript
复制
CREATE TABLE `goods` (
  `id` int NOT NULL ,
  `name` varchar(25) ,
  `updateat` datetime 
)

现在,在表中有这样的数据。

​

​

当我想插入像(1,'new','2021-12-18 12:00:00').First这样的新数据时,确定表中是否有与要插入的数据相同的数据(除了更新时间),然后比较更新时间,保留最新的数据。

我想知道如何使用sql来实现这个功能。

EN

回答 1

Stack Overflow用户

发布于 2021-12-18 12:42:23

首先将主键添加到表中:

代码语言:javascript
复制
CREATE TABLE goods (
  id int NOT NULL ,
  name varchar(25) ,
  updateat datetime,
  PRIMARY KEY (id, name)
)

然后使用ON DUPLICATE KEY UPDATE:

代码语言:javascript
复制
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))

小提琴

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70403281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档