我做了一些研究,但似乎没有什么适合我的需求。我有一个数据库表,其中包含从 Web 服务检索的一些数据。
用户为每条记录执行一些任务,然后将其标记为“已处理”。所以我有一个名为“已处理”的附加 db 字段(不是基于我从 WS 获得的数据),默认设置为 0,当用户完成工作时设置为 1。
每天我都会检查 WS,如果状态码发生变化,我想更新行并将处理设置回 0(以便用户可以再次处理它)。
假设这是我的数据库...
+------+------------+-------+------------+
| id | statuscode | foo | processed |
+------+------------+-------+------------+
| 123 | 66 | bar | 1 |
+------+------------+-------+------------+
- 如果没有具有相同键(id)的行,我想插入一条新记录。
- 如果有一行具有相同的键和“foo”更改,我想更新除“已处理”字段之外的任何值。
- 如果有一行具有相同的键和状态码更改,我想更新任何值并将处理设置为 0。
我认为具有某些条件的 ON DUPLICATE KEY UPDATE 可以使其工作,也许在某些 CASE 或 IF 条件下......我错了吗?任何建议都可以接受,在此先感谢!