Как использовать значение строки в запросе, чтобы повлиять на выбор запроса?

0

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().

Кто-нибудь знает, как я могу это достичь?

  • 1
    Разве это не простое предложение where, такое как 'Select * from auth_token, где (id_type =' a 'и valid_to = time () - 3600) OR (id_type =' b 'и valid_to = time ());
  • 0
    Я думаю, что это решение, которое не так сложно, как я думал, что будет. Спасибо :)
Показать ещё 1 комментарий
Теги:
database

2 ответа

0

Это было так просто, как объяснил Скелва. Применение предложения where с and и /or достаточно для этого случая.

Мой пример будет раскрываться в следующем запросе:

Выберите * из auth_token, где (id_type = 'a' и valid_to = time() - 3600) OR (id_type = 'b' и valid_to = time())

0

Вы можете использовать случай, когда условие в условии where.

i.e.

    Select * 
    from auth_token 
    where (CASE WHEN id_type = 'a' THEN valid_to = ? WHEN id_type = 'b' THEN valid_to = ? END);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню