Поддерживать состояние сортировки SQL в течение следующего запроса? - PullRequest
0 голосов
/ 30 июля 2009

Я видел это сообщение , но не понял, была ли это та же проблема.

Моя база данных может быть отсортирована по каждому столбцу. Как только БД отсортирована, как мне сохранить этот порядок после моего следующего запроса?

Например:
Заказать БД по возрасту:
sprintf (sql, "select * from Customer_Table ORDER BY age_ID LIMIT 100 OFFSET% s;", offset);

тогда пользователь смотрит на следующие 100 клиентов

sprintf (sql, "select * from Customer_Table LIMIT 100 OFFSET% s;", смещение); // следующее смещение

Возвращенные данные больше не упорядочены по возрасту. Как бы я сохранил последнюю сортировку в следующем запросе?

Должен ли я передавать переменную для поддержания состояния или в базе данных есть функция для вызова ее последнего состояния?

Ответы [ 4 ]

2 голосов
/ 30 июля 2009

Помимо выбора записей во временной таблице и последующего выбора из этой таблицы, вам нужно будет указывать ORDER BY в каждом запросе. Сервер не сохраняет никакого состояния относительно предыдущего запроса. Почему возникает проблема с повторным указанием предложения ORDER BY в последующих запросах?

Используете ли вы временную таблицу или повторно указываете весь запрос, зависит от того, как структурировано ваше приложение.

2 голосов
/ 30 июля 2009

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

2 голосов
/ 30 июля 2009

Вы должны указывать предложение ORDER BY при каждом запросе.

То, как это оптимизируется вашей системой баз данных, не касается кода вашего клиента.

1 голос
/ 30 июля 2009

Базы данных SQL не гарантируют никакой сортировки, вы должны указывать ее при каждом вызове select.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...