Задать вопрос
cjbars
@cjbars

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

Помогите сообразить.
Дано
База данных с записями, которые добавляются и удаляются.
Записи группируются по категориям.
Грубо говоря одна категория записей это стопка бумажных листов.
Записей десятки тысяч в каждой категории.

Требуется: взять самый верхний лист из стопки, вернуть его вызывающему скрипту, а сам лист положить в самый низ стопки. и так по кругу.

Не могу сообразить как это сделать логически, ну и как следствие технически.

Была идея прописывать каждой позиции порядковые номера, и после выбора элемента обновлять все номера в базе. Но это как то накладно.
Была идея помечать последний выбранный элемент флагом (аналог курсора). Но не понятно что делать если помеченный элемент будет удален из базы.
Чувствую что есть простое решение, но не могу сообразить.
  • Вопрос задан
  • 142 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Добавить поле `lastUse` TIMESTAMP с индексом;
UPDATE `table` SET @id := `id`, `lastUse` = NOW() ORDER BY `lastUse` LIMIT 1;
SELECT * FROM `table` WHERE `id` = @id;

Такая комбинация запросов ещё и позволяет работать параллельно нескольким скриптам.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽