переупорядочить результаты запроса MySQL PHP

0

Я запускаю запрос mysql, который получает конкретные результаты из таблицы. Затем я хочу напечатать эти результаты в двух html-таблицах. Первый упорядочен по одному столбцу, который уже выполняется путем помещения ORDER BY в запрос mysql. Но затем я хочу напечатать результаты, упорядоченные другим столбцом. Тем не менее, я не хочу снова запускать запрос mysql, поскольку это слишком медленно.

Итак, подведем итог: Есть ли способ изменить порядок результатов запроса mysql?

(извините, если вопрос непонятен, это мой первый раз, используя сайт.)

  • 1
    Вам нужно будет создать массив, сохранить данные и изменить порядок массива. Нет необходимости говорить, что это, скорее всего, будет медленнее, чем повторный запуск запроса.
  • 0
    Можете ли вы привести пример того, что вы имеете в виду? Хотите полностью переупорядочить результаты? Или вы хотите просто добавить вторичную сортировку? О, и вы можете потратить некоторое время на ускорение запроса, если он уже слишком медленный, так как это сэкономит ваше время в долгосрочной перспективе ...
Теги:

4 ответа

1

Почему бы не показать его только один раз и использовать плагин jQuery Таблица. Кроме того, если вы хотите показать его дважды, нет никакой проблемы при сортировке таблицы.

Преимущество будет повышаться по мере того, как вы передаете операцию сортировки со стороны сервера (PHP) на клиентскую сторону (Javascript).

1

PHP имеет некоторые действительно отличные функции сортировки. Я, скорее всего, сделаю пользовательскую функцию сортировки и использую ее с вашим результирующим набором:

http://php.net/manual/en/function.usort.php

Сортировка с PHP, как правило, очень быстро. Быстрее, чем второй запрос, если ваш результирующий набор не слишком большой.

1

Вы можете просто изменить порядок результатов с помощью одного из методов сортировки в php. http://php.net/manual/en/array.sorting.php

Я предполагаю, что вы бы хотели использовать usort() здесь: http://php.net/manual/en/function.usort.php

0

Если вы действительно хотите использовать функции сортировки в MySQL, в отличие от тех, что есть в PHP, один из вариантов - написать ваш PHP-код для запроса дважды. В первом запросе:

SELECT id FROM table_name WHERE (whatever) ORDER BY first_criteria

Затем во втором запросе выберите строки:

WHERE id IN (2,17,388,etc.)
ORDER BY different_column

., конечно, передача идентификаторов из вашего первого запроса в раздел IN.

Не уверен, будет ли это быстрее или медленнее, чем сортировка в PHP. Возможно, стоит проверить.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню