MySQL сортировка части результата

157
15 декабря 2016, 15:50

В процессе создания удобного интерфейса для базы данных возникла необходимость сортировать записи, но сортировать не все сразу, а лишь те, которые попадают на страницу. Страницы создаются с помощью LIMIT. Поясню: есть 5 страниц результатов, пользователь находится на 3-ей странице (SELECT * FROMtableLIMIT 200,100), хотелось бы дать ему возможность, кликнув по заголовку таблички результатов отсортировать записи только на этой странице. Если просто приписать в запрос ORDER BY field, то на страницу попадут уже абсолютно другие записи. Понимаю, что можно все сделать уже в PHP, но полей, по которым можно производить сортировку 7 штук, включая дату, с которой не хочется возиться. Буду благодарен, если подскажете, как этого избежать.

Answer 1

Например так:

select field1, field2 
from (
  select field1, field2 
  from tab
  order by field1
  limit 200,100
) x
order by field2 desc

А по поводу сортировки на клиенте подумайте еще раз. дату можно timestamp'ом передавать, все будет замечательно сравниваться и быстрее притом.

Answer 2

Сортируйте результаты уже на стороне клиента, не насилуйте БД.

Например jqxGrid

READ ALSO
Залить дамп sql без phpmyadmin?

Залить дамп sql без phpmyadmin?

Как можно залить дамп sql созданный в phpmyadmin без использования phpmyadmin

127
Ошибка работы с MySQL: You have an error in your SQL syntax

Ошибка работы с MySQL: You have an error in your SQL syntax

Делал оплату сервиса через купюру монеты в бд money, присвоение дней timePrins к сервису и активация acivPrinsВозникла ошибка ни разу не встречал

150
Отрицание в INNER JOIN

Отрицание в INNER JOIN

Нужно чтобы из tasks не показывались те материалы, id которых записан в tasks_done

168