|
|
|
| Доброго дня суток!
Есть таблица, в ней поля ID (уникалный) и mlast int(10). Сортировка по mlast. Как мне получить позицию определённой записи по порядку сортировки. | |
|
|
|
|
|
|
|
для: DeeGreeZ
(19.06.2005 в 15:42)
| | Можно воспользоваться запросом вида
SELECT ID, mlast FROM tbl ORDER BY mlast LIMIT 2345, 1
|
который выведет запись номер 2345 по порядку сортировки. | |
|
|
|
|
|
|
|
для: cheops
(19.06.2005 в 15:54)
| | Тут дело как раз в том, что я не знаю позиию этой записи. Для того чтобы написать LIMIT X,1 я сначала и должен узнать этот X. Можно конечно в цикле перебирать, но это не эффективно будет. (тем более если база будет очень большой) | |
|
|
|
|
|
|
|
для: DeeGreeZ
(19.06.2005 в 16:06)
| | Так а по какому критерию следует отобрать запись? Какая исходная задача? | |
|
|
|
|
|
|
|
для: cheops
(19.06.2005 в 16:09)
| | Значит так... id это идентификатор записи, mlast это время последнего обновления записи. Сортировка идет по mlast т.е. по времени последнего обновления. При просмотре пользователем определённой записи нужно сделать в форме ссылки на предыдущую и последующую записи. Похожая вещь реализована на этом форуме. при просмотре сообщений темы в правом верхнем углу две ссылки пред. и последующие темы выводятся. | |
|
|
|
|
|
|
|
для: DeeGreeZ
(19.06.2005 в 16:20)
| | Т.е. ID текущей записи нам известен (пусть хранится в переменной $ID)? Тогда можно воспользоваться следующими запросами
SELECT ID, mlast FROM tbl WHERE ID>$ID ORDER BY mlast LIMIT 1
|
и
SELECT ID, mlast FROM tbl WHERE ID<$ID ORDER BY mlast LIMIT 1
|
| |
|
|
|