我想在表中插入一条记录。条件如下:
如果表中没有id,则只需将其插入。
如果已经插入ID,则检查lastUpdatedAt,如果lastUpdatedAt小于新日期,则更新行。
否则忽略插入操作。
我已经搜索了它,发现使用称为'DUAL'的mysql虚拟表是可能的。但只有在id不可用时才插入。如果id可用并且lastUpdatedAt小于新日期,则不会插入数据。
INSERT IGNORE INTO students(id,marks,lastUpdatedAt)
SELECT 111,75,'2019-03-29' FROM DUAL WHERE NOT EXISTS(SELECT * FROM students WHERE id=111 AND lastUpdatedAt > '2019-03-29')