SQL Как обновить два поля, используя CASE WHEN THEN - PullRequest
0 голосов
/ 18 октября 2018

Я надеюсь, что название объясняет все это, но я все еще попытаюсь объяснить, чего я пытаюсь достичьИтак, у меня есть таблица с именем users , мне нужно проверить, есть ли у пользователей следующие утверждения true ,

  • enabled
  • lastaccess<(EXTRACT ('epoch' FROM CURRENT_TIMESTAMP) - (86400 * 200)) *1000* 1010 * </ul>

    Если у пользователей есть значения выше true , измените их включенный статус на false.В то же время мне нужно обновить поле disabledTime в таблице с текущим временем.

    Я написал следующий 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 остается пустым.

    Любая помощь по этому вопросу будет принята с благодарностью.

1 Ответ

0 голосов
/ 18 октября 2018

Просто скопируйте то же условие для 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...