auth_token
у меня есть таблица auth_token
со значениями id_type
и valid_to
. В зависимости от id_type
я хочу получить все токены с valid_to
которые меньше time() - x
. Таким образом, в этом случае x
будет иметь другое значение после того, как id_type
будет a
затем id_type
будет b
.
Итак, давайте иметь пример: однажды id_type = a
Я хочу, чтобы id_type = a
и та же строка была выбрана после valid_to = time() - 3600
и когда id_type = b
Я хочу, чтобы id_type = b
та же строка была выбрана после valid_to = time()
.
Кто-нибудь знает, как я могу это достичь?
Это было так просто, как объяснил Скелва. Применение предложения where с and
и /or
достаточно для этого случая.
Мой пример будет раскрываться в следующем запросе:
Выберите * из auth_token, где (id_type = 'a' и valid_to = time() - 3600) OR (id_type = 'b' и valid_to = time())
Вы можете использовать случай, когда условие в условии where.
i.e.
Select *
from auth_token
where (CASE WHEN id_type = 'a' THEN valid_to = ? WHEN id_type = 'b' THEN valid_to = ? END);