Учитывая, что autoincrement-ный id-шник может быть "дырявым", получить следующий элемент можно так:
SELECT `id` FROM `table` WHERE `id` > CURRENT_ID ORDER BY `id` ASC LIMIT 1;
а предыдущий так:
SELECT `id` FROM `table` WHERE `id` < CURRENT_ID ORDER BY `id` ASC LIMIT 1;
При этом учитывая, что CURRENT_ID - это ID текущего элемента, а сортировка во всех трех запросам одинаковая.
Можно объединить три запроса в один, используя BETWEEN и LIMIT 3.
Но вот сделать цикличность на уровне только лишь БД - сложновато.