我有以下查询可以正常工作:
UPDATE IGNORE table SET a = "a", b = "b" WHERE c = "c" AND d = "d"
这一点非常清楚 - 使用a和b的新值更新表中c =“c”和d =“d”的所有行。我试图使用INSERT ... ON DUPLICATE KEY UPDATE语句重写此查询。到目前为止我所拥有的是:
INSERT INTO table (a, b, c, d) VALUES ("a", "b", "c", "d") ON DUPLICATE KEY UPDATE a=VALUES(a), b=VALUES(b);
然而,所有这一切都是使用这些值创建一个新行。
a和b都是唯一索引,或者至少在我运行show index时,它们的“非唯一”字段为0。
我对MySQL很陌生,所以我不确定我在这里做错了什么。