【发布时间】:2012-08-05 23:43:15
【问题描述】:
我进行了一些研究,但似乎没有什么适合我的需求。我有一个数据库表,其中包含从 Web 服务检索的一些数据。
用户为每条记录执行一些任务,然后将其标记为“已处理”。所以我有一个名为“已处理”的附加 db 字段(不是基于我从 WS 获得的数据),默认设置为 0,当用户完成工作时设置为 1。
每天我都会检查 WS,如果状态码发生变化,我想更新行并将处理设置回 0(以便用户可以再次处理)。
假设这是我的数据库...
+------+------------+-------+------------+
| id | statuscode | foo | processed |
+------+------------+-------+------------+
| 123 | 66 | bar | 1 |
+------+------------+-------+------------+
- 如果没有具有相同键 (id) 的行,我想插入一条新记录。
- 如果有一行具有相同的键和“foo”更改,我想更新除“已处理”字段之外的任何值。
- 如果有一行具有相同的键和状态码更改,我想更新任何值并将已处理设置为 0。
我认为在某些条件下 ON DUPLICATE KEY UPDATE 可以使它工作,也许在某些 CASE 或 IF 条件下......我错了吗?欢迎任何建议,提前感谢!
【问题讨论】:
-
你将如何检测
foo的变化?您是否有自己的价值来检查 foo 列??
标签: mysql conditional on-duplicate-key