Я запускаю запрос mysql, который получает конкретные результаты из таблицы. Затем я хочу напечатать эти результаты в двух html-таблицах. Первый упорядочен по одному столбцу, который уже выполняется путем помещения ORDER BY в запрос mysql. Но затем я хочу напечатать результаты, упорядоченные другим столбцом. Тем не менее, я не хочу снова запускать запрос mysql, поскольку это слишком медленно.
Итак, подведем итог: Есть ли способ изменить порядок результатов запроса mysql?
(извините, если вопрос непонятен, это мой первый раз, используя сайт.)
Почему бы не показать его только один раз и использовать плагин jQuery Таблица. Кроме того, если вы хотите показать его дважды, нет никакой проблемы при сортировке таблицы.
Преимущество будет повышаться по мере того, как вы передаете операцию сортировки со стороны сервера (PHP) на клиентскую сторону (Javascript).
PHP имеет некоторые действительно отличные функции сортировки. Я, скорее всего, сделаю пользовательскую функцию сортировки и использую ее с вашим результирующим набором:
http://php.net/manual/en/function.usort.php
Сортировка с PHP, как правило, очень быстро. Быстрее, чем второй запрос, если ваш результирующий набор не слишком большой.
Вы можете просто изменить порядок результатов с помощью одного из методов сортировки в php. http://php.net/manual/en/array.sorting.php
Я предполагаю, что вы бы хотели использовать usort()
здесь: http://php.net/manual/en/function.usort.php
Если вы действительно хотите использовать функции сортировки в 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. Возможно, стоит проверить.