♛ FORTRESS-DESIGN

Определяем количество записей MySQL: пример кода

Количество записей MySQL

3DwithLove

Функция COUNT()

Функция COUNT() возвращает количество записей в таблице, соответствующих заданному критерию.

Функция COUNT(expr) всегда считает только те строки, у которых результатом выражения expr является NOT NULL.

Исключением из этого правила является использование функции COUNT() со звездочкой в качестве аргумента — COUNT(*). В этом случае считаются все строки, вне зависимости от того, NULL они или NOT NULL.

Например, функция COUNT(*) возвращает общее количество записей в таблице:

SELECT COUNT(*) FROM table_name

Как посчитать количество записей и вывести на экран

Пример PHP+MySQL-кода для подсчета и вывода общего количества строк:

<?php>
$res = mysql_query("SELECT COUNT(*) FROM table_name")
$row = mysql_fetch_row($res);
$total = $row[0]; // всего записей
echo $total;
?>

Этот пример иллюстрирует самый простой вариант использования функции COUNT(). Но с помощью этой функции можно выплнять и другие задачи.

Указав определенный столбец таблицы в виде параметра, функция COUNT(column_name) возвращает количество записей этого столбца, которые не содержат значение NULL. Записи со значениями NULL игнорируются.

SELECT COUNT(column_name) FROM table_name

Использовать функцию mysql_num_rows() нельзя, потому что для того, чтобы узнать общее количество записей, нужно выполнить запрос SELECT * FROM db, то есть получить все записи, а это нежелательно, поэтому предпочтительнее использовать функцию count.

$result = mysql_query("SELECT COUNT (*) as rec FROM db");

Использование функции COUNT() на примере

Вот еще один пример использования функции COUNT(). Допустим, есть таблица ice_cream с каталогом мороженого, в которой находятся идентификаторы категорий и названия мороженого:

id name
1 «Пломбир № 1»
1 100% мороженое
1 Эскимо № 1
2 «Румба»
2 «Фрутсок»

Задача: Нужно посчитать, сколько наименований мороженого содержится в каждой категории.

Решение этой задачи очевидно:

SELECT id, COUNT(*) FROM ice_cream GROUP BY id

Результат:

id count
1 3
2 2

Если надо вывести населенный пункт и количество населенных пунктов в городе, то можно воспользоваться таким кодом:

SELECT tab1.subcity,COUNT(tab2.city) FROM tab1 LEFT JOIN tab2 ON tab1.subsity = tab2.subcity

Резюме

Соответственно, для решения более сложных задач в функцию COUNT() можно подставить выражение, возвращающее NULL или NOT NULL. Если строку нужно посчитать — выражение должно возвращать NOT NULL.


Перейти к верхней панели