我希望标题能解释所有内容,但我仍将尝试并解释我要实现的目标。因此,我有一个名为 users 的表,我需要检查用户是否具有以下语句 true ,
如果用户具有上述值 true ,则将其启用状态更改为 false 。同时,我需要用当前时间更新表中的 disabledTime 字段。
我编写了以下SQL,该SQL能够为用户设置 enabled = false ,但不确定如何设置 disabledTime 字段。
UPDATE users
SET
enabled = CASE
WHEN
enabled = true
AND lastaccess != 0
AND lastaccess < (EXTRACT('epoch' FROM CURRENT_TIMESTAMP) - (86400*200))*1000
THEN false
ELSE enabled
END
上面的SQL将用户的启用状态设置为 false ,但 disabledTime 字段保持为空。
对此将提供任何帮助。
答案 0 :(得分:1)
只需复制disabledTime
列的相同条件
UPDATE users SET
enabled = CASE
WHEN
enabled = true
AND lastaccess != 0
AND lastaccess < (EXTRACT('epoch' FROM CURRENT_TIMESTAMP) - (86400*200))*1000
THEN false
ELSE enabled
END,
disabledTime =
CASE
WHEN
enabled = true
AND lastaccess != 0
AND lastaccess < (EXTRACT('epoch' FROM CURRENT_TIMESTAMP) - (86400*200))*1000
THEN CURRENT_TIMESTAMP
ELSE disabledTime
END