Если ваше поле name
является уникальным индексом, первые два ответа работают нормально. Но если у вас есть более одного «Dunn», например, вам придется написать немного больше SQL, чем это.
Скажем, «Dunn», который мы хотим, это запись 123. Я предполагаю, что мы уже знали это, когда запрашивалась страница, потому что, как правило, мы ищем «Dunn» по record_id, а не по имени (myscript.php ? id = 123, а не myscript.php? name = Dunn). Затем мы можем сделать это, чтобы собрать 3 сверху и 3 снизу:
SELECT <code>name
ОТ table
ГДЕ name
<= 'Данн' И <code>record_id <> 123
ЗАКАЗАТЬ НА name
ASC
LIMIT 3
И ...
SELECT <code>name
ОТ table
ГДЕ name
> = 'Незнайка' И record_id
<> 123
ЗАКАЗАТЬ ПО name
ASC
LIMIT 3