0

正如标题中所说,我想插入一个新值,或者如果它的主键已经存在,则更新该行,但前提是数据库值比给定的新值旧。

查询是这样的,但是 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'
4

1 回答 1

3

如果它较新,只需用相同的值“替换”它:

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)
于 2012-12-14T21:05:23.187 回答