У меня есть две таблицы msyql: значки и события. Я использую объединение, чтобы найти все события и вернуть информацию о значке для этого события (название и описание), используя следующий код:
SELECT COUNT (Badges.badge_ID) AS
badge_count, название, Badges.description
ОТ Badges
ПРИСОЕДИНЯЙТЕСЬ Events
ВКЛ
Badges.badge_id = Events.badge_id GROUP
BY title ASC
В дополнение к подсчетам, мне нужно знать значение события с наибольшим количеством записей. Я думал, что я сделаю это в php с функцией max (), но у меня были проблемы с настройкой, чтобы это работало правильно. Итак, я решил, что могу получить тот же результат, изменив вышеуказанный запрос, используя «ORDER BY badgecount DESC LIMIT 1», который возвращает массив из одного элемента, значение которого является наибольшим количеством всех событий.
Хотя это решение хорошо работает для меня, мне любопытно, потребовалось ли больше ресурсов для двух вызовов к серверу (т.к. я сейчас использую два запроса) вместо того, чтобы работать в php. Если бы я делал это в php, как я мог получить максимальное значение определенного элемента в ассоциативном массиве (было бы неплохо иметь возможность вернуть ключ и значение, если это возможно)?
EDIT:
Хорошо, это удивительно, что несколько часов отдыха сделают для ума. Я открыл свой код этим утром и сделал простую модификацию кода, которая сработала для меня. Я просто создал переменную в поле count и, если новый был больше старого, изменил его на новое значение (см. Инструкцию «if» в следующем коде):
if ($ c> $ наибольший счет) {
$ самое высокое количество = $ с; }