Forum Webscript.Ru
Общие => Базы данных => Тема начата: RelaX от 05 Апреля 2005, 17:36:45
-
Здравствуйте!
У меня есть таблица, в которой есть столбец цифровой, данные в нем идут по возрастанию.
Есть запроc
SELECT * FROM `stat` ORDER BY `data` LIMIT 30
Он сортирует все по дате и берет ПЕРВЫЕ 30 записей. Как мне по той же сортировке получить ПОСЛЕДНИЕ 30 записей, чтобы у меня в полученном массиве дата шла на возрастание?
Делал запрос с DESC, получаю то что надо, только данные в обратном порядке, что мне не надо.
-
получи массив в скрипт и там отсортируй назад
это самое простое
-
RomikChef
а средствами mysql как-нибудь?
-
а зачем?
-
чтобы БД думала, на то она и БД.
сделать запрос типа ..... LIMIT , 20
т.е. пропустить все и взять последние 20
-
это будет дольше, чем отсортировать в скрипте
-
RelaX
что-то аля... :
SELECT * FROM \'stat` ORDER BY `data` LIMIT 30 OFFSET (SELECT COUT(*) FROM \'stat\')-30
?
-
RomikChef
это будет дольше, чем отсортировать в скрипте
на чем основываються подобные заявления?
-
на соображениях, базирующихся на опыте.
-
сделал два запроса, в первом получаю число записей в БД, а во втором получаю выборку с N-30 записи и выбираю 30 записей.
commander
а разде mysql подддерживает вложенные запросы? это больше похоже на PostgreSQL
тему можно считать закрытой. раз так все сделал так, как не хотел делать
-
RelaX:
а разде mysql подддерживает вложенные запросы?
[off]угу поддерживает[/off]