Рецепт №127. Из книги «128 рецептов php»
Перейти к оглавлению
В предыдущем рецепте, с помощью GROUP BY были сгруппированы строки — группировались пользователи по фамилиям и для каждой группы находился самый большой возраст. Иногда бывает необходимо помимо всего этого, еще и отсортировать полученные группы по какому-нибудь условию. Например, получить группы фамилий, у которых минимальный возраст превышает 18 лет. В таких случаях можно воспользоваться оператором HAVING, он добавляется в SQL-запрос после группировки:
SELECT last_name, min(`age`) as min_age FROM `tbl_users` GROUP BY last_name HAVING min_age > 18
Пример:
// предварительно, необходимо реализовать // подключение к базе данных // запрос // при ошибке остановим скрипт и выведем ошибку $query = mysql_query(" SELECT last_name, min(`age`) as min_age FROM `tbl_users` GROUP BY last_name HAVING min_age > 18 ") or die(mysql_error()); // получение результата запроса $result = array(); while($row = mysql_fetch_array($query, MYSQL_ASSOC)){ $result[] = $row; } // вывод результата print_r ($result);