我有一个包含以下字段的表:
id(int) 锁定(布尔) lastlocked(时间戳) 消息(文本)
我想通过检查来查询数据库: 1.桌子被锁了吗? 2.如果锁定,是否超过10分钟前被锁定? 2A。如果超过10分钟前,请将bool更改为0。 2B。如果不到10分钟前,请返回,最好带有“表锁定”等错误消息。
锁定的原因是为了防止在其他人编辑消息时编辑消息。 如果超过10分钟,编辑邮件的客户端可能已崩溃或未完成更新(无论出于何种原因)。
答案 0 :(得分:0)
如果您创建了一个临时表来检查数据,然后根据第一个查询的结果,您可以通过包含UPDATE的CASE / WHEN或IF / THEN来查看该结果。不确定mysql的确切语法,但是像这样:
SELECT ID,locked,lastlocked,message 来自消息 WHERE ID = 1 和locked = 1;
最后一次锁定的情况>现在 - 10分钟然后 更新消息 SET locked = 0;