В процессе создания удобного интерфейса для базы данных возникла необходимость сортировать записи, но сортировать не все сразу, а лишь те, которые попадают на страницу. Страницы создаются с помощью LIMIT. Поясню: есть 5 страниц результатов, пользователь находится на 3-ей странице (SELECT * FROMtableLIMIT 200,100), хотелось бы дать ему возможность, кликнув по заголовку таблички результатов отсортировать записи только на этой странице. Если просто приписать в запрос ORDER BY field, то на страницу попадут уже абсолютно другие записи. Понимаю, что можно все сделать уже в PHP, но полей, по которым можно производить сортировку 7 штук, включая дату, с которой не хочется возиться. Буду благодарен, если подскажете, как этого избежать.
Например так:
select field1, field2
from (
select field1, field2
from tab
order by field1
limit 200,100
) x
order by field2 desc
А по поводу сортировки на клиенте подумайте еще раз. дату можно timestamp'ом передавать, все будет замечательно сравниваться и быстрее притом.
Сортируйте результаты уже на стороне клиента, не насилуйте БД.
Например jqxGrid
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости