Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Необычный запрос / 5 сообщений из 5, страница 1 из 1
24.10.2014, 13:48:53
    #38786633
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необычный запрос
Приветствую всех.
Можно ли, если можно, то как? Одним запросом вытащить следующие данные, к примеру имеется след. запрос:
SELECT * FROM `table` WHERE `id`=10 LIMIT 20;
можно ли изменить запрос так, чтобы этот запрос достал десять результатов которые меньше 10 и десять которые больше?
...
Рейтинг: 0 / 0
24.10.2014, 14:03:09
    #38786645
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необычный запрос
Это не "необычный", а достаточно частый вопрос.

Поскольку вы не сказали, что делать с теми у кого ровно 10, то так:
Код: sql
1.
2.
3.
SELECT * FROM `table` WHERE `id`>10 ORDER BY id LIMIT 10
UNION ALL
SELECT * FROM `table` WHERE `id`<10 ORDER BY id DESC LIMIT 10
...
Рейтинг: 0 / 0
24.10.2014, 14:26:17
    #38786666
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необычный запрос
miksoft,

Ага) А что делать, если 10 равно?

Вот этот юнион он сильно нагружает запрос или же это равносильно тому, если бы я выбрил одним запросом 20 строчек, ведь по сути одно количество строчек получается
...
Рейтинг: 0 / 0
24.10.2014, 14:30:40
    #38786675
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необычный запрос
zhurchickАга) А что делать, если 10 равно?Это вы нам должны сказать что делать с такой записью.
Если ее нужно включить в результат запроса, то можно так:
Код: sql
1.
2.
3.
4.
5.
SELECT * FROM `table` WHERE `id`=10
UNION ALL
SELECT * FROM `table` WHERE `id`>10 ORDER BY id LIMIT 10
UNION ALL
SELECT * FROM `table` WHERE `id`<10 ORDER BY id DESC LIMIT 10

Если известно, что запись с `id`=10 гарантированно существует, то можно немного проще:
Код: sql
1.
2.
3.
SELECT * FROM `table` WHERE `id`>=10 ORDER BY id LIMIT 11
UNION ALL
SELECT * FROM `table` WHERE `id`<10 ORDER BY id DESC LIMIT 10


zhurchickВот этот юнион он сильно нагружает запросЕсли есть индекс по полю id или оно входит первым в какой-либо составной индекс, то это довольно легкий запрос.
...
Рейтинг: 0 / 0
24.10.2014, 14:40:42
    #38786682
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необычный запрос
miksoft,

Я пишу галерею на ajax и при запросе мне нужно достать ссылки на десять фото для переключения вперед и 10 для переключения назад.

Большая спасибо за вашу помощь
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Необычный запрос / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]