我有这个查询:
INSERT INTO `items` (`id`,`image`)
VALUES(112,'asdf.jpg'),(113,'foobar.png')
ON DUPLICATE KEY UPDATE
`id`VALUES(`id`),
`image` = IF(image_uploaded = 0, VALUES(`image`),image);
更糟糕的是:它正常工作,但不是我想要的。
我想要什么:只有在“image_uploaded”字段设置为 0 时才应该更新图像。
有任何想法吗?
背景:我有一个包含数据的数据库表。现在每天晚上一个 cronjob 调用一个 API-Fn 从另一个数据库获取新数据并将其写到我的表中。此功能正在从第二个数据库中获取所有项目,因此它目前只是覆盖我现有的数据。现在我的应用程序允许更改我从第二个数据库获得的数据并覆盖我自己的表中的更改。所以问题是:我需要能够通过我的应用程序编辑数据并通过 API 更新数据而不会发生冲突。用户可以更改“图像”,但所有其他内容应从第二个数据库更新。仅当未手动上传图像时才应覆盖该图像。