|
|
|
|
|
для: Igorek
(20.06.2014 в 09:18)
| | > diablo_ (19.06.2014 в 21:10)
> Нeжен ваш совет!
=) | |
|
|
|
|
|
|
|
для: diablo_
(19.06.2014 в 21:10)
| |
<?
(
SELECT *, 'left' as dir
FROM ttt
WHERE str < 'Кошки'
ORDER BY str DESC
LIMIT 1)
UNION
(
SELECT *, 'right' as dir
FROM ttt
WHERE str > 'Кошки'
ORDER BY str ASC
LIMIT 1)
|
Результат:
5 - Еноты - left
4 - Мухи - right
|
| |
|
|
|
|
|
|
| Всем привет.
Нeжен ваш совет!
Дано:
пять записей в базе: (id, title)
1, 'Олени'
2, 'Кошки'
3, 'Собаки'
4, 'Мухи'
5, 'Еноты'.
Если мы с делаем выборку с сортировкой по алфавиту, то получим записи в порядке: 5, 2, 4, 1, 3.
Задача: Пользователь выбрал записи 3 (Собаки). Необходимо выбрать ближайшую запись с обеих сторон (если запись не последняя).
То есть, если я выбрал запись 3, то с одной стороны пусто, а вот с другой должно быть 1. А если я выбрал запись 2 (кошки), слева у меня должно быть 5, а справа 4.
Есть ли идеи как такое сделать? смена id не рассматривается.
Мне, пока что, пришла в голову лишь одна идея. Создать таблицу, произвести выборку с сортировками и пройдя по результатам занести во вторую таблицу. | |
|
|
|
|