Как узнать количество записей в SQL-выборке
Очень часто нам не требуется извлекать данные из таблицы, однако, нам необходимо узнать количество записей в определённой SQL-выборке, в частном случае, количество записей в таблице. Вот как узнать количество записей в SQL-выборке, я расскажу в этой небольшой статье.
На самом деле всё очень просто, и нам нужна всего лишь функция COUNT():
SELECT COUNT(*) FROM `table` WHERE `field_1`=’value_1′
После выполнения данного запроса будет возвращён result_set, в котором будет храниться массив, содержащий элемент COUNT(*) со значением количества записей в таблице «table«, где поле «field_1» имеет значение «value_1«.
Другой пример. Допустим, надо узнать просто количество записей. Тогда то же самое, но без WHERE:
SELECT COUNT(*) FROM `table`
И давайте, напоследок, подкину ещё один пример. Допустим, Вам необходимо подсчитать количество уникальных записей в таблице:
SELECT COUNT(DISTINCT `field_1`) FROM `table`
Вот такой нехитрой функцией COUNT() можно легко узнавать количество записей в SQL-выборке, не извлекая при этом сами записи и экономя ресурсы.

![]()
Создано 12.03.2012 12:53:32
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 45 ):
lion337 01.06.2012 15:11:04
Михаил, здравствуйте! Хотел бы попросить у Вас помощи. Почему на реальном хостинге этот запрос не работает $res_articles = $mysqli->query(«SELECT id,title,cp_title,description,images,author,DATE_FORMAT(date,’%d %M %Y’) as date FROM articles WHERE tg=’0′ ORDER BY id DESC LIMIT $shift,$num_data»); Проблема в — LIMIT $shift,$num_data — не пойму почему не работает с переменными! Перепробовал все варианты, уже два дня голову ломаю :((( Если Вас не затруднит можете дать совет.
Admin 01.06.2012 15:35:02
Вряд ли дело в хостинге, Вы проверьте значения переменных shift и num_data. А также «не работает» понятие растяжимое. Выдаются ли какие-нибудь ошибки? Или просто пустой результат выходит?
lion337 01.06.2012 15:41:31
Пустой результат, но когда убираю LIMIT $shift,$num_data или пишу вместо переменных LIMIT 2, 5 то всё ОК. А может переменные привести к числу через integer?
Admin 01.06.2012 15:49:10
Тогда проблема в значении переменных, можете ещё попробовать через соединение строк: «LIMIT «.$shift.», «.$num_data
lion337 01.06.2012 15:53:43
Я так пробовал всё равно пустой результат, но в переменных лежат числа я проверял конечно я не проверял на int
Admin 01.06.2012 15:55:51
Посмотрите, что в этой строке (всё ли правильно): echo «SELECT id,title,cp_title,description,images,author,DATE_FORMAT(date,’%d %M %Y’) as date FROM articles WHERE tg=’0′ ORDER BY id DESC LIMIT $shift,$num_data»;
lion337 01.06.2012 16:06:07
Сейчас проверяю, главное что на localhoste всё работает
lion337 01.06.2012 18:31:16
Вывод после echo — SELECT id,title,cp_title,description,author,images,DATE_FORMAT(date,’%d %M %Y’) as date FROM articles WHERE tg=’0′ ORDER BY id DESC LIMIT -10,10.
Admin 01.06.2012 18:51:05
Видите, что запрос неправильный? Вот и подумайте, почему -10 подставляется.
lion337 01.06.2012 18:54:12
Спасибо Михаил за помощь разобрался просто в функции не изменил один параметр
Посчитать и сравнить количество записей в двух таблицах
Посчитать количество записей в 2 и более таблицах одним запросом
На данный момент вот так mysql_query("SELECT count(a.id_article) as a_count_id_article.
Посчитать количество строк в двух таблицах
Подскажите, как можно реализовать такую сложнейшую задачу. Есть две таблицы r1 (поля id,num,sum).

Синхронизация записей в двух таблицах
Люди помогите как можно сделать такой запрос в БД две таблицы 1. таблица бана на форуме.
Join разное количество записей в таблицах
у меня несколько таблиц и в одной одна нужная запись (по которой вытягиваются данные остальных.
count
ClickHouse поддерживает следующие виды синтаксиса для count :
- count(expr) или COUNT(DISTINCT expr) .
- count() или COUNT(*) . Синтаксис count() специфичен для ClickHouse.
Аргументы
Функция может принимать:
- Ноль параметров.
- Одно выражение.
Возвращаемое значение
- Если функция вызывается без параметров, она вычисляет количество строк.
- Если передаётся выражение, то функция подсчитывает количество раз, когда выражение не равно NULL. Если выражение имеет тип Nullable, то результат count не становится Nullable . Функция возвращает 0, если выражение равно NULL для всех строк.
В обоих случаях тип возвращаемого значения UInt64.
Подробности
ClickHouse поддерживает синтаксис COUNT(DISTINCT . ) . Поведение этой конструкции зависит от настройки count_distinct_implementation. Она определяет, какая из функций uniq * используется для выполнения операции. По умолчанию — функция uniqExact.
Запрос SELECT count() FROM table оптимизирован по умолчанию с использованием метаданных из MergeTree. Если вы хотите управлять безопасностью на уровне строк, отключите оптимизацию при помощи настройки optimize_trivial_count_query.
При этом запрос SELECT count(nullable_column) FROM table может быть оптимизирован включением настройки optimize_functions_to_subcolumns. При optimize_functions_to_subcolumns = 1 функция читает только подстолбец null вместо чтения всех данных столбца. Запрос SELECT count(n) FROM table преобразуется к запросу SELECT sum(NOT n.null) FROM table .
Примеры
SELECT count() FROM t
Как подсчитать количество сгруппированных строк в таблице?
получаю таблицу из 10 строк, а в каждой записано количество записей в каждой категории.
Но мне нужно, чтобы в результате была одна строка с количеством разделов (category). Оно равно 10, но получить эту 10 я не могу через SQL.
Помогите кто чем сможет.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как подсчитать нужное количество строк в таблице?
Хочу посчитать кол-во строк в динамической таблице. Но браузер выдает ошибку. Из-за ошибки я понял.
Подсчитать количество строк в таблице
Доброго времени суток. У меня такой вопрос: как подсчитать количество строк выведеных в таблицу в.
Подсчитать количество строк в таблице
подскажите, пожалуйста, как подсчитать количество строк в таблице? и как установить курсор на.

Подсчитать количество строк в таблице в запросе
всем привет давно спрашивал но забыл ответ:) поэтому еще раз есть запрос " выбрать 1,2,3 .
