У меня очень простая таблица, где я храню баны игроков. Здесь всего два столбца (не на самом деле, но для простоты) - уникальный идентификатор игрока (uid) и дата истечения бана (expiredate).
Я не хочу оставлять в таблице просроченные запреты, поэтому нужно удалить все запреты, срок действия которых истек ‹currentdate.
Чтобы узнать, забанен ли игрок, я запрашиваю в этой таблице его uid и текущую дату, чтобы узнать, есть ли какие-либо записи. Если есть - определяем, что игрок забанен.
Поэтому мне нужно выполнить два запроса. Один, который принесет мне запреты, и другой, который очистит таблицу от лишних запретов.
Мне было интересно, можно ли эти запросы объединить в один. Выберите и верните запись, если она все еще актуальна, и удалите запись и ничего не верните, если это не так.
Есть ли какие-нибудь хорошие способы сделать это в одном запросе выбора?
Редактировать:
Чтобы уточнить, у меня действительно есть другая информация в таблице, такая как причина бана, дата бана и т. Д., Поэтому мне нужно вернуть строку, а также удалить нерелевантные записи.