Получение сгруппированных строк. GROUP BY

Рецепт №126. Из книги «128 рецептов php»
Перейти к оглавлению

Иногда необходимо получить какие-то данные для сгруппированных строк, например, узнать максимальный возраст для всех Ивановых, Петровых и тд. То есть необходимо сгруппировать всех пользователей по фамилии и получить для них максимальный возраст. Для этих целей можно воспользоваться SQL-запросом с оператором GROUP BY. Запрос будет выглядеть так:

SELECT `last_name`, max(`age`) as max_age FROM `tbl_users`
    GROUP BY `last_name`

Результатом выполнения такого запроса будет массив строк, которые будет содержать по два значения – фамилию и максимальный возраст для группы этих фамилий.
Пример:

// предварительно, необходимо реализовать 
// подключение к базе данных

// запрос
// при ошибке остановим скрипт и выведем ошибку
$query = mysql_query("
	SELECT last_name, max(`age`) as max_age 
	FROM `tbl_users`
		GROUP BY last_name
") or die(mysql_error());

// получение результата запроса
$result = array();
while($row = mysql_fetch_array($query, MYSQL_ASSOC)){
	$result[] = $row;
}

// вывод результата
print_r ($result);
Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*