根据时间更新mysql表中的boolean

时间:2014-01-12 14:02:14

标签: mysql

我有一个包含以下字段的表:

id(int) 锁定(布尔) lastlocked(时间戳) 消息(文本)

我想通过检查来查询数据库: 1.桌子被锁了吗? 2.如果锁定,是否超过10分钟前被锁定? 2A。如果超过10分钟前,请将bool更改为0。 2B。如果不到10分钟前,请返回,最好带有“表锁定”等错误消息。

锁定的原因是为了防止在其他人编辑消息时编辑消息。 如果超过10分钟,编辑邮件的客户端可能已崩溃或未完成更新(无论出于何种原因)。

1 个答案:

答案 0 :(得分:0)

如果您创建了一个临时表来检查数据,然后根据第一个查询的结果,您可以通过包含UPDATE的CASE / WHEN或IF / THEN来查看该结果。不确定mysql的确切语法,但是像这样:

SELECT ID,locked,lastlocked,message 来自消息 WHERE ID = 1 和locked = 1;

最后一次锁定的情况>现在 - 10分钟然后   更新消息   SET locked = 0;