如标题所示,我想要插入一个新值,或者如果其主键已经存在,则更新该行,但仅当数据库值早于给定的新值时才会更新。
查询是这样的,但是where语句
有问题INSERT INTO myTable(field1_key, field2, datefield) VALUES('val1', 'val2', '2012-12-12 12:12:12')
ON DUPLICATE KEY UPDATE
field2='val2'
datefield='2012-12-12 12:12:12'
WHERE datefield <'2012-12-12 12:12:12'
答案 0 :(得分:3)
如果它更新,只需&#34;替换&#34;它具有相同的值:
INSERT INTO myTable(field1, field2, datefield) VALUES ('val1', 'val2', '2012:12:12 12:12')
ON DUPLICATE KEY UPDATE
datefield=IF(datefield < VALUES(datefield), VALUES(datefield), datefield),
field2=IF(datefield < VALUES(datefield), VALUES(field2), field2)