INSERT INTO mcrun
(starttime
,loop
,chckport
,mcid
,UpdateTime
) VALUES ('2022-02-15 09:20:11','9','R','217',NOW())
ON DUPLICATE KEY UPDATE xxx
mcrun 表只有mcid
约束唯一的键
现在 INSERT INTO '217'这个语句,
有可能表里已经有 217 数据了,
想完成这个事情,的 UPDATE 做一些判断修改表的方法应该如何实现?
1 、如果指定的starttime
,loop
这两个在表的数据,和新插入有不同,单一个值有变化,也算条件成立,就更新最新的值,并把 UpdateTime 修改成 NOW()
2 、如果指定的starttime
,loop
这两个在表的数据,和新插入的一样,什么都不用动
3 、chckport
的字段,不用理会
能不能单条语句完成?
如果一条语句实在办不到,自己能想到的是,解除约束健设置,直接新加入地写入,周期地删除重复 mcid ,只保留最新的 mcid 条目。。。,效率低,查询又要增加 order by UpdateTime LIMIT 1 ,很麻烦。。。
谢谢各位大佬能解答这个问题,谢谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.