|
|
|
| Имеется 60 записей в таблице. Вывод в брай\узер по 20 позиций (1-20; 21-40; 41-60)
Необходимо сортировать только те записи которые находятся на выбранной странице, т.е. если мы находимся на 2-й странице, это записи с 21-40 при Order By id ASC LIMIT 20, 20, когда происходит обратная сортировка, т.е. Order By id DESC LIMIT 20, 20 , то выводятся записи в кол-ве 20, но с номерам не 40-21, а совсем другие. Нельзя ли запросами добится сначала выбора необходимого кол-ва записей, а потом его сортировки. У кого есть какие мнения? | |
|
|
|
|
|
|
|
для: maxnag
(06.11.2006 в 12:51)
| | > но с номерам не 40-21, а совсем другие.
а какие? | |
|
|
|
|
|
|
|
для: elenaki
(06.11.2006 в 13:47)
| | сначало, как я понял идет сортировка всех выбранных данных, а потом лимит. вот представте таблицу из большого кол-ва записей. и когда вы находитесь даже на первой странице, то вам выдаст при ASC с 1 по N, а потом при DESC с N-1, а надо при ASC с 1-20 (20 кол-во записей на странице) и при DESC c 20 по 1. | |
|
|
|
|
|
|
|
для: maxnag
(06.11.2006 в 14:23)
| | а вы представьте, что записи в базе НЕ нумерованы. id дает только уникальность и порядок
следования (больше-меньше), а не нумерацию. нумерацию делают отдельно в цикле при выводе. | |
|
|
|
|
|
|
|
для: elenaki
(06.11.2006 в 14:29)
| | Это я понял, что ай-ди не панацея. Я хочу знать, есть ли возможность сначало выбрать некую часть записей, а потом эти записи сортировать.??? может как-то делать временную таблицу, представление, ну не знаю что может мускул. Кстати версия 4.1.21-community-nt | |
|
|
|
|
|
|
|
для: maxnag
(06.11.2006 в 14:40)
| | Можно попробовать через вложенный запрос добиться такого поведения
SELECT * FROM (SELECT * FROM tbl LIMIT 20 , 20) AS tbl1
ORDER BY id
|
Но вы действительно зря выводите внутренние id-номера на страницу - лучше их генерировать искусственно. | |
|
|
|
|
|
|
|
для: cheops
(06.11.2006 в 15:10)
| | ID я просто написал, что есть самое понятное, вместо ID может быть все что угодно, фамилии, адреса и тд.
Спасибо за ответ, все работает. Все оказалось очень просто. Спасибо за расширение моего кругозора. | |
|
|
|