Вернуть True, если запись отсутствует, или присутствует, но добавлена более 10 минут назад
Мне нужно вернуть True в любом из двух случаев - если запись существует, но при этом добавлена более 10 минут назад, или вернуть True, если запись отсутствует. Смотрел в сторону этого:
SELECT EXISTS( SELECT id
FROM table
WHERE use_time < NOW() - INTERVAL '10' MINUTE
AND что тут нужно добавить )
Но что тут нужно добавить, в голову не приходит
Ответы (2 шт):
Автор решения: Akina
→ Ссылка
SELECT NOT EXISTS ( SELECT id
FROM table
WHERE use_time >= NOW() - INTERVAL 10 MINUTE )
Автор решения: teran
→ Ссылка
То что вы написали будет эквивалентно отсутствуют записи меньшей чем 10 минут.
Вы описали логическое выражение
exists && t>10 || !exists
Попробуйте его переформулировать с отрицанием
!( (!exists || t < 10 ) && exists )
раскройте скобки в &&
!( !exists && exists || (t< 10 && exists))
очевидно, первая часть всегда false и из OR это можно выкинуть, останется
!(exists && t < 10)