Как я могу указать базе данных возвращать данные только отдельными частями? - PullRequest
2 голосов
/ 20 марта 2009

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

Проблема: у меня есть запрос на выборку, который возвращает результат размером 100 000+. Пользователь хочет просмотреть все эти данные, но, очевидно, я не могу дать ему все сразу. Я также не хочу хранить так много данных в памяти клиента. Я хочу, чтобы пользователь мог "пролистывать" результаты, имея возможность просматривать данные на страницах 500 записей.

Итак, как я могу попросить базу данных отправить мне только 500 записей за раз?

Ответы [ 2 ]

1 голос
/ 20 марта 2009

Это зависит от базы данных, которую вы используете, но в MySql вы можете попробовать что-то вроде:

SELECT * FROM MyTable LIMIT <start>, 500

и замените <start> индексом, с которого вы хотите начать (например, 0 для первой страницы, 501 для второй страницы).

1 голос
/ 20 марта 2009

Вы можете использовать комбинацию rownumber и top (по крайней мере в SQL-сервере)

...