- Как определить количество строк в таблице в базе данных MySQL
- Способ 1. phpMyAdmin
- Способ 2. COUNT
- Способ 3. mysql_num_rows
- Смотрите также
- Функция COUNT
- Основные запросы
- Условия выборки
- Группировка
- Сложение строк
- Несколько таблиц
- Длина строк
- Изменение строк
- Поиск по строкам
- Работа с пробелами
- Работа с регистром
- Информация
- Условия
- Полезное
- Разное
- Математические функции
- Списки
- Извлечение части даты
- Получение даты и времени
- Преобразование даты
- Сложение дат
- Тригонометрия
- Отдельные символы
- Системы счисления
- Синтаксис
- Примеры
- Пример
- Пример
- Пример
- Меняем таблицу для примеров
- Пример
- Функция COUNT (Transact-SQL)
- Синтаксис
- Аргументы
- Типы возвращаемых данных
- Remarks
- Примеры
- A. Использование функции COUNT и параметра DISTINCT
- Б. Использование функции COUNT(*)
- В. Использование функции COUNT(*) совместно с другими статистическими функциями
- Г. Использование предложения OVER
- Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)
- Д. Использование функции COUNT и параметра DISTINCT
- Е. Использование функции COUNT(*)
- Ж. Использование функции COUNT(*) совместно с другими статистическими функциями
- З. Использование функции COUNT с предложением HAVING
- И. Использование функции COUNT с предложением OVER
- Как узнать количество записей в SQL-выборке
- Комментарии ( 45 ):
Как определить количество строк в таблице в базе данных MySQL
Однажды я столкнулся с тем, что мне нужно было посчитать количество строк в таблице SQL, но многие из предлагаемых в интернете решений у меня не работали. И всё же я нашёл выход.
Способ 1. phpMyAdmin
Начнем с самого простого и очевидного. Допустим, вам не нужно использовать полученный результат в коде, а просто узнать количество строк, только и всего.
Тогда заходим в phpMyAdmin (localhost/tools/phpmyadmin — для Денвера, localhost/phpMyAdmin для MAMP), затем выбираем нужную базу данных, после этого выбираем таблицу, количество строк в которой нужно выяснить, и видим следующее сообщение:
Способ 2. COUNT
Вот так выглядит сам SQL-запрос:
SQL-запрос с условием:
Реализация на PHP:
Аналогичным образом сюда можно добавить условие. Тогда код выведет число строк в таблице, удовлетворяющих условию.
Способ 3. mysql_num_rows
Этот способ позволяет подсчитать количество строк результата запроса.
Например в WordPress посты хранятся в таблице wp_posts , таким образом мы можем узнать сколько записей (типов постов) хранится в базе данных в таблице MySQL. Этот код дан только для примера (или для случаев, когда среда WordPress не подгружена), так как в WordPress подключение к базе данных осуществляется через класс $wpdb.
В результат будут включены абсолютно все записи. А как узнать количество только тех, которые опубликованы? Для этого нам потребуется немного изменить SQL-запрос.
Смотрите также
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!
Источник
Функция COUNT
Основные запросы
Условия выборки
Группировка
Сложение строк
Несколько таблиц
Длина строк
Изменение строк
Поиск по строкам
Работа с пробелами
Работа с регистром
Информация
Условия
Полезное
Разное
- Типы полей
- Организация базы данных
создание правильной структуры —> - Подзапросы
- SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop; mysql> SELECT * FROM shop WHERE price=@min_price OR price=@max_price; https://habrahabr.ru/post/133781/ тут еще про переменные цикл получается SET @i = 0; SELECT * FROM product WHERE MOD(@i:=@i+1, 2) = 0; —>Переменные sql
Математические функции
Списки
Извлечение части даты
Получение даты и времени
Преобразование даты
Сложение дат
Тригонометрия
Отдельные символы
Системы счисления
Функция COUNT подсчитывает количество записей в таблице.
Условие, по которому будут выбираться записи, задается с помощью команды WHERE.
Команда WHERE не является обязательной, если ее не указать — будут подсчитаны все записи в таблице.
См. также команду DISTINCT, которая позволяет подсчитывать только уникальные значения поля.
См. также команду GROUP BY, которая позволяет группировать записи и затем с помощью COUNT подсчитывать количество в группах.
Синтаксис
Подсчет всех записей:
Подсчет всех записей, где заданное поле не равно NULL:
Только уникальные значения поля:
Примеры
Все примеры будут по этой таблице workers, если не сказано иное:
id айди | name имя | age возраст | salary зарплата |
---|---|---|---|
1 | Дима | 23 | 400 |
2 | Петя | 25 | 500 |
3 | Вася | 23 | 500 |
4 | Коля | 30 | 1000 |
5 | Иван | 27 | 500 |
6 | Кирилл | 28 | 1000 |
Пример
Давайте подсчитаем всех работников с возрастом 23 года:
Результат выполнения SQL запроса:
count результат подсчета |
---|
2 |
Пример
Давайте подсчитаем количество разных зарплат (их будет 3 штуки: 400, 500 и 1000):
Результат выполнения SQL запроса:
count результат подсчета |
---|
3 |
Пример
Давайте подсчитаем одновременно количество разных возрастов и количество разных зарплат:
Результат выполнения SQL запроса:
count1 количество возрастов | count2 количество зарплат |
---|---|
5 | 3 |
Меняем таблицу для примеров
Все примеры ниже будут по этой таблице workers, если не сказано иное:
id айди | name имя | age возраст | salary зарплата |
---|---|---|---|
1 | Дима | 23 | NULL |
2 | Петя | 25 | 500 |
3 | Вася | 23 | NULL |
Пример
Давайте подсчитаем количество всех записей:
Результат выполнения SQL запроса:
count результат подсчета |
---|
3 |
А теперь подсчитаем количество зарплат, не равных NULL:
Источник
Функция COUNT (Transact-SQL)
Применимо к: SQL Server (все поддерживаемые версии) База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics Параллельное хранилище данных
Эта функция возвращает количество элементов, найденных в группе. Функция COUNT работает подобно функции COUNT_BIG. Эти функции различаются только типами данных в возвращаемых значениях. Функция COUNT всегда возвращает значение типа данных int. Функция COUNT_BIG всегда возвращает значение типа данных bigint.
Синтаксические обозначения в Transact-SQL
Синтаксис
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
ALL
Применяет агрегатную функцию ко всем значениям. Аргумент ALL используется по умолчанию.
DISTINCT
Указывает, что функция COUNT возвращает количество уникальных значений, не равных NULL.
expression
Выражение любого типа, кроме image, ntext и text. Обратите внимание, что функция COUNT не поддерживает агрегатные функции и вложенные запросы в выражении.
*
Указывает, что функция COUNT должна учитывать все строки, чтобы определить общее количество строк таблицы для возврата. Функция COUNT(*) не принимает параметры и не поддерживает использование аргумента DISTINCT. Для функции COUNT(*) не требуется параметр expression, так как по определению она не использует сведения о конкретном столбце. Функция COUNT(*) возвращает количество строк в указанной таблице с учетом повторяющихся строк. Она подсчитывает каждую строку отдельно. При этом учитываются и строки, содержащие значения NULL.
OVER ( [ partition_by_clause ] [ order_by_clause ] [ ROW_or_RANGE_clause ] )
partition_by_clause делит результирующий набор, полученный с помощью предложения FROM , на секции, к которым применяется функция COUNT . Если этот параметр не указан, функция обрабатывает все строки результирующего набора запроса как отдельные группы. order_by_clause определяет логический порядок выполнения операции. Дополнительные сведения см. в статье SELECT — предложение OVER (Transact-SQL).
Типы возвращаемых данных
int
Remarks
Функция COUNT(*) возвращает количество элементов в группе. Сюда входят значения NULL и повторяющиеся значения.
Функция COUNT(ALL expression) вычисляет expression для каждой строки в группе и возвращает количество значений, не равных NULL.
Функция COUNT(DISTINCT expression) вычисляет expression для каждой строки в группе и возвращает количество уникальных значений, не равных NULL.
Для возвращаемых значений, которые превышают значение 2^31-1, функция COUNT возвращает ошибку. В таких случаях используйте вместо нее функцию COUNT_BIG .
COUNT — это детерминированная функция, если она используется без _ предложений OVER и ORDER BY. Она не детерминирована при использовании _ с предложениями OVER и ORDER BY. Дополнительные сведения см. в статье Детерминированные и недетерминированные функции.
Примеры
A. Использование функции COUNT и параметра DISTINCT
В этом примере функция возвращает количество различных должностей, которые может иметь сотрудник Компания Adventure Works Cycles.
Б. Использование функции COUNT(*)
В этом примере функция возвращает общее количество сотрудников Компания Adventure Works Cycles.
В. Использование функции COUNT(*) совместно с другими статистическими функциями
В этом примере показано, что функция COUNT(*) работает с другими статистическими функциями в списке SELECT . В этом примере используется база данных AdventureWorks2012.
Г. Использование предложения OVER
В этом примере функции MIN , MAX , AVG и COUNT используются с предложением OVER , чтобы получить статистические значения для каждого из отделов в таблице HumanResources.Department базы данных AdventureWorks2012.
Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)
Д. Использование функции COUNT и параметра DISTINCT
В этом примере функция возвращает количество различных должностей, которые может иметь конкретный сотрудник компании.
Е. Использование функции COUNT(*)
В этом примере функция возвращает общее количество строк в таблице dbo.DimEmployee .
Ж. Использование функции COUNT(*) совместно с другими статистическими функциями
В этом примере функция COUNT(*) работает с другими статистическими функциями в списке SELECT . Запрос возвращает количество торговых представителей с годовой квотой продаж более 500 000 долл. США и их среднюю квоту продаж.
З. Использование функции COUNT с предложением HAVING
В этом примере функция COUNT используется с предложением HAVING , чтобы получить список подразделений компании, в каждом из которых работает более 15 сотрудников.
И. Использование функции COUNT с предложением OVER
В этом примере функция COUNT используется с предложением OVER , чтобы получить количество продуктов, содержащихся в каждом из указанных заказов на продажу.
Источник
Как узнать количество записей в 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-выборке, не извлекая при этом сами записи и экономя ресурсы.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 45 ):
Михаил, здравствуйте! Хотел бы попросить у Вас помощи. Почему на реальном хостинге этот запрос не работает $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 — не пойму почему не работает с переменными! Перепробовал все варианты, уже два дня голову ломаю :((( Если Вас не затруднит можете дать совет.
Вряд ли дело в хостинге, Вы проверьте значения переменных shift и num_data. А также «не работает» понятие растяжимое. Выдаются ли какие-нибудь ошибки? Или просто пустой результат выходит?
Пустой результат, но когда убираю LIMIT $shift,$num_data или пишу вместо переменных LIMIT 2, 5 то всё ОК. А может переменные привести к числу через integer?
Тогда проблема в значении переменных, можете ещё попробовать через соединение строк: «LIMIT «.$shift.», «.$num_data
Я так пробовал всё равно пустой результат, но в переменных лежат числа я проверял конечно я не проверял на int
Посмотрите, что в этой строке (всё ли правильно): 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»;
Сейчас проверяю, главное что на localhoste всё работает
Вывод после 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.
Видите, что запрос неправильный? Вот и подумайте, почему -10 подставляется.
Спасибо Михаил за помощь разобрался просто в функции не изменил один параметр
Источник