Основные запросы
- SELECT
получение записей - INSERT
вставка записей - UPDATE
редактирование записей - DELETE
удаление записей - COUNT
подсчет записей
Условия выборки
- WHERE
условие - OR
логическое ИЛИ - AND
логическое И - ORDER BY
сортировка - LIMIT
ограничение выборки - BETWEEN
выбор из промежутка - IN
заданные значения - LIKE
T поиск по шаблону - AS
смена имен полей - DISTINCT
уникальные значения - NOT
отрицание - IS NOT NULL
значение не равно NULL - IS NULL
значение равно NULL
Группировка
- GROUP BY
группировка - HAVING
условие на group by
Сложение строк
- CONCAT
сложение строк - CONCAT_WS
сложение с разделителем - GROUP_CONCAT
сложение ячеек
Несколько таблиц
- UNION
объединение таблиц - JOIN
связывание таблиц - LEFT JOIN
левый join - RIGHT JOIN
правый join - INNER JOIN
внутренний join - SELECT INTO
копирование в другую таблицу
Длина строк
- LENGTH
длина строки
Изменение строк
- LEFT
вырезание слева - RIGHT
вырезание справа - SUBSTRING
взятие подстроки - MID
взятие подстроки - SUBSTRING_INDEX
взятие подстроки - REPLACE
поиск и замена - LPAD
дополнение строки слева - RPAD
дополнение строки справа - REVERSE
переворот строки - REPEAT
повторение строки
Поиск по строкам
- POSITION
поиск подстроки - LOCATE
поиск подстроки - INSTR
поиск подстроки
Работа с пробелами
- TRIM
обрезание пробелов - LTRIM
обрезание пробелов слева - RTRIM
обрезание пробелов справа - SPACE
строка из пробелов
Работа с регистром
- LCASE, LOWER
нижний регистр - UCASE, UPPER
верхний регистр
Информация
- DESCRIBE
информация о таблице - SHOW DATABASES
информация о базах данных - SHOW COLUMNS
информация о полях таблицы
Условия
Полезное
Разное
- Типы полей
- Организация базы данных
создание правильной структуры —> - Подзапросы
- 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
Математические функции
- MIN
минимальное значение - MAX
максимальное значение - SUM
сумма полей - AVG
среднее арифметическое - ROUND
округление - FLOOR
округление - CEILING
округление - TRUNCATE
усечение числа - ABS
модуль числа - SIGN
знак числа - MOD
деление по модулю - POW, POWER
степень числа - SQRT
корень числа - RAND
случайное число
Списки
- LEAST
минимальное из значений - GREATEST
максимальное из значений - ELT
строка по номеру - FIELD
номер по строке
Извлечение части даты
- DAY, DAYOFMONTH
день из даты - MONTH
месяц из даты - YEAR
год из даты - HOUR
часы из даты - MINUTE
минуты из даты - SECOND
секунды из даты - DATE
дата из datetime - EXTRACT
части даты - WEEKDAY
день недели - DAYOFWEEK
день недели - DAYNAME
название дня недели - MONTHNAME
название месяца - DAYOFYEAR
номер дня в году - WEEK
ET номер недели в году - YEARWEEK
ET год и номер недели в году
Получение даты и времени
- NOW, SYSDATE, CURRENT_TIMESTAMP
текущие дата и время - CURRENT_DATE, CURDATE
текущая дата - CURRENT_TIME, CURTIME
текущее время
Преобразование даты
- DATE_FORMAT
смена формата даты - TIME_FORMAT
смена формата времени - TO_DAYS
дата в дни - FROM_DAYS
дни в дату - SEC_TO_TIME
секунды в time - TIME_TO_SEC
время в секунды
Сложение дат
- INTERVAL
операции с датами - DATE_ADD, ADDDATE
сложение дат - DATE_SUB, SUBDATE
вычитание дат ? - PERIOD_DIFF
? —>
Тригонометрия
- SIN
? - COS
? - TAN
? - COT
? - ASIN
? - ACOS
? - ATAN
? - ATAN2
? - PI
? - DEGREES
? - RADIANS
? - RADIANS
?
Отдельные символы
- ASCII
? - ORD
? - CHAR
?
Системы счисления
- BIN
? - OCT
? - HEX
?
Функция 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) COUNT (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Azure Synapse Analytics (Хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse
Эта функция возвращает количество элементов, найденных в группе. This function returns the number of items found in a group. Функция COUNT работает подобно функции COUNT_BIG. COUNT operates like the COUNT_BIG function. Эти функции различаются только типами данных в возвращаемых значениях. These functions differ only in the data types of their return values. Функция COUNT всегда возвращает значение типа данных int. COUNT always returns an int data type value. Функция COUNT_BIG всегда возвращает значение типа данных bigint. COUNT_BIG always returns a bigint data type value.
Синтаксические обозначения в Transact-SQL Transact-SQL Syntax Conventions
Синтаксис Syntax
Аргументы Arguments
ALL ALL
Применяет агрегатную функцию ко всем значениям. Applies the aggregate function to all values. Аргумент ALL используется по умолчанию. ALL serves as the default.
DISTINCT DISTINCT
Указывает, что функция COUNT возвращает количество уникальных значений, не равных NULL. Specifies that COUNT returns the number of unique nonnull values.
expression expression
Выражение любого типа, кромеimage, ntext и text. An expression of any type, except image, ntext, or text. Обратите внимание, что функция COUNT не поддерживает агрегатные функции и вложенные запросы в выражении. Note that COUNT does not support aggregate functions or subqueries in an expression.
*
Указывает, что функция COUNT должна учитывать все строки, чтобы определить общее количество строк таблицы для возврата. Specifies that COUNT should count all rows to determine the total table row count to return. Функция COUNT(*) не принимает параметры и не поддерживает использование аргумента DISTINCT. COUNT(*) takes no parameters and does not support the use of DISTINCT. Для функции COUNT(*) не требуется параметр expression, так как по определению она не использует сведения о конкретном столбце. COUNT(*) does not require an expression parameter because by definition, it does not use information about any particular column. Функция COUNT(*) возвращает количество строк в указанной таблице с учетом повторяющихся строк. COUNT(*) returns the number of rows in a specified table, and it preserves duplicate rows. Она подсчитывает каждую строку отдельно. It counts each row separately. При этом учитываются и строки, содержащие значения NULL. This includes rows that contain null values.
OVER ( [ partition_by_clause ] [ order_by_clause ] [ ROW_or_RANGE_clause ] ) OVER ( [ partition_by_clause ] [ order_by_clause ] [ ROW_or_RANGE_clause ] )
partition_by_clause делит результирующий набор, полученный с помощью предложения FROM , на секции, к которым применяется функция COUNT . The partition_by_clause divides the result set produced by the FROM clause into partitions to which the COUNT function is applied. Если этот параметр не указан, функция обрабатывает все строки результирующего набора запроса как отдельные группы. If not specified, the function treats all rows of the query result set as a single group. order_by_clause определяет логический порядок выполнения операции. The order_by_clause determines the logical order of the operation. Дополнительные сведения см. в статье SELECT — предложение OVER (Transact-SQL). See OVER Clause (Transact-SQL) for more information.
Типы возвращаемых данных Return types
int int
Remarks Remarks
Функция COUNT(*) возвращает количество элементов в группе. COUNT(*) returns the number of items in a group. Сюда входят значения NULL и повторяющиеся значения. This includes NULL values and duplicates.
Функция COUNT(ALL expression) вычисляет expression для каждой строки в группе и возвращает количество значений, не равных NULL. COUNT(ALL expression) evaluates expression for each row in a group, and returns the number of nonnull values.
Функция COUNT(DISTINCT expression) вычисляет expression для каждой строки в группе и возвращает количество уникальных значений, не равных NULL. COUNT(DISTINCT expression) evaluates expression for each row in a group, and returns the number of unique, nonnull values.
Для возвращаемых значений, которые превышают значение 2^31-1, функция COUNT возвращает ошибку. For return values exceeding 2^31-1, COUNT returns an error. В таких случаях используйте вместо нее функцию COUNT_BIG . For these cases, use COUNT_BIG instead.
COUNT — это детерминированная функция, если она используется без предложений OVER и ORDER BY. COUNT is a deterministic function when used without the OVER and ORDER BY clauses. Она не детерминирована при использовании с предложениями OVER и ORDER BY. It is nondeterministic when used with the OVER and ORDER BY clauses. Дополнительные сведения см. в статье Детерминированные и недетерминированные функции. See Deterministic and Nondeterministic Functions for more information.
Примеры Examples
A. A. Использование функции COUNT и параметра DISTINCT Using COUNT and DISTINCT
В этом примере функция возвращает количество различных должностей, которые может иметь сотрудник Компания Adventure Works Cycles Adventure Works Cycles . This example returns the number of different titles that an Компания Adventure Works Cycles Adventure Works Cycles employee can hold.
Результирующий набор: Here is the result set.
Б. B. Использование функции COUNT(*) Using COUNT(*)
В этом примере функция возвращает общее количество сотрудников Компания Adventure Works Cycles Adventure Works Cycles . This example returns the total number of Компания Adventure Works Cycles Adventure Works Cycles employees.
Результирующий набор: Here is the result set.
В. C. Использование функции COUNT(*) совместно с другими статистическими функциями Using COUNT(*) with other aggregates
В этом примере показано, что функция COUNT(*) работает с другими статистическими функциями в списке SELECT . This example shows that COUNT(*) works with other aggregate functions in the SELECT list. В этом примере используется база данных AdventureWorks2012 AdventureWorks2012 . The example uses the AdventureWorks2012 AdventureWorks2012 database.
Результирующий набор: Here is the result set.
Г. D. Использование предложения OVER Using the OVER clause
В этом примере функции MIN , MAX , AVG и COUNT используются с предложением OVER , чтобы получить статистические значения для каждого из отделов в таблице HumanResources.Department базы данных AdventureWorks2012 AdventureWorks2012 . This example uses the MIN , MAX , AVG and COUNT functions with the OVER clause, to return aggregated values for each department in the AdventureWorks2012 AdventureWorks2012 database HumanResources.Department table.
Результирующий набор: Here is the result set.
Примеры: Azure Synapse Analytics (Хранилище данных SQL) Azure Synapse Analytics (SQL Data Warehouse) и Параллельное хранилище данных Parallel Data Warehouse Examples: Azure Synapse Analytics (Хранилище данных SQL) Azure Synapse Analytics (SQL Data Warehouse) and Параллельное хранилище данных Parallel Data Warehouse
Д. E. Использование функции COUNT и параметра DISTINCT Using COUNT and DISTINCT
В этом примере функция возвращает количество различных должностей, которые может иметь конкретный сотрудник компании. This example returns the number of different titles that an employee of a specific company can hold.
Результирующий набор: Here is the result set.
Е. F. Использование функции COUNT(*) Using COUNT(*)
В этом примере функция возвращает общее количество строк в таблице dbo.DimEmployee . This example returns the total number of rows in the dbo.DimEmployee table.
Результирующий набор: Here is the result set.
Ж. G. Использование функции COUNT(*) совместно с другими статистическими функциями Using COUNT(*) with other aggregates
В этом примере функция COUNT(*) работает с другими статистическими функциями в списке SELECT . This example combines COUNT(*) with other aggregate functions in the SELECT list. Запрос возвращает количество торговых представителей с годовой квотой продаж более 500 000 долл. США и их среднюю квоту продаж. It returns the number of sales representatives with an annual sales quota greater than $500,000, and the average sales quota of those sales representatives.
Результирующий набор: Here is the result set.
З. H. Использование функции COUNT с предложением HAVING Using COUNT with HAVING
В этом примере функция COUNT используется с предложением HAVING , чтобы получить список подразделений компании, в каждом из которых работает более 15 сотрудников. This example uses COUNT with the HAVING clause to return the departments of a company, each of which has more than 15 employees.
Результирующий набор: Here is the result set.
И. I. Использование функции COUNT с предложением OVER Using COUNT with OVER
В этом примере функция COUNT используется с предложением OVER , чтобы получить количество продуктов, содержащихся в каждом из указанных заказов на продажу. This example uses COUNT with the OVER clause, to return the number of products contained in each of the specified sales orders.
Результирующий набор: Here is the result set.
Выборка из двух таблиц с использованием count(*)
Наткнулся на вот такую проблему, бьюсь уже неделю
Суть проблемы:
Есть две таблицы. В одной записи, в другой список фотографий к конкретным записям.
table1
id title
1 запись 1
2 запись 2
3 запись 3
table2
id table1_id photo
1 1 1.jpg
2 1 2.jpg
3 3 3.jpg
на выходе хотелось бы получить таблицу вида
id title count_photo
1 запись 1 2
2 запись 2 0
3 запись 3 1
Как решить эту задачку? Гуру, отзовитесь!
Выборка из двух таблиц с использованием функции MAX
Здравствуйте! Требуется создать запрос из двух таблиц. Некоторые столбцы первой таблицы.
Выборка из трех таблиц с функцией count()
У меня имеется три таблицы, связанные внешним ключами: create table office(id_office INTEGER.
Выборка уникальных данных с использованием count, max
Суть запроса:Вывод ФИО клиентов и самый предпочитаемый вид услуги у каждого из них за год(выбран.
Спасибо, похоже на правду.
Но как то не совсем то получается.
Вот запрос
SELECT p1.id, count(p2.id) AS kol FROM parts p1 LEFT OUTER JOIN photos p2 ON p2.art = p1.id
На выходе получилось следующее:
Да, теперь все заработало корректно! Спасибо
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Не выходит получить Count из двух таблиц сразу
Hi, тракая проблема — есть таблица main и две дочерние к ней child1 и child2 Надо написать такой.
Обьединение двух условий с разных таблиц (WHERE, COUNT)
Пытаюсь всячески разно объединить эти два условия, но никак не получается. Надо получить ИД.
Выборка из двух таблиц
Всем привет. Есть 2 запроса: sSQL_M = «SELECT a.CRAYP3, a.MFIFP3 AS MARGA » & _ .
Выборка из двух таблиц
Доброе время суток! Есть две таблицы, который нужно сравнить и поместить отобранные записи в третью.
Mysql count с условием
В выражении SELECT мы можем вводить подзапросы четырьмя способами:
В условии в выражении WHERE
В условии в выражении HAVING
В качестве таблицы для выборки в выражении FROM
В качестве спецификации столбца в выражении SELECT
Рассмотрим некоторые из этих случаев. Например, получим все товары, у которых цена выше средней:
Чтобы получить нужные товары, нам вначале надо выполнить подзапрос на получение средней цены товара: SELECT AVG(Price) FROM Products .
Оператор IN
Нередко подзапросы применяются вместе с оператором IN , который выбирает из набора значений. И подзапрос как раз может предоставить требуемый набор значений. Например, выберем все товары из таблицы Products, на которые есть заказы в таблице Orders:
То есть подзапрос в данном случае выбирает все идентификаторы товаров из Orders, затем по этим идентификаторам извлекаютя товары из Products.
Добавив оператор NOT , мы можем выбрать те товары, на которые нет заказов в таблице Orders:
Стоит отметить, что это не самый эффективный способ для извлечения связанных данных из других таблиц, так как для сведения данных из разных таблиц можно использовать оператор JOIN, который рассматривается в следующей главе.
Получение набора значений
При использовании в операторах сравнения подзапросы должны возвращать одно скалярное значение. Но иногда возникает необходимость получить набор значений. Чтобы при использовании в операторах сравнения подзапрос мог возвращать набор значений, перед ним необходимо использовать один из операторов: ALL , SOME или ANY .
При использовании ключевого слова ALL условие в операции сравнения должно быть верно для всех значений, которые возвращаются подзапросом. Например, найдем все товары, цена которых меньше чем у любого товара фирмы Apple:
Если бы мы в данном случае опустили бы ключевое слово ALL, то мы бы столкнулись с ошибкой.
Допустим, если данный подзапрос возвращает значения vаl1, val2 и val3, то условие фильтрации фактически было бы аналогично объединению этих значений через оператор AND:
В тоже время подобный запрос гораздо проще переписать другим образом:
Как работает оператор ALL:
x > ALL (1, 2) эквивалентно x > 2
x эквивалентно x
x = ALL (1, 2) эквивалентно (x = 1) AND (x = 2)
x <> ALL (1, 2) эквивалентно x NOT IN (1, 2)
Операторы ANY и SOME условие в операции сравнения должно быть истинным для хотя бы одного из значений, возвращаемых подзапросом. По своему действию оба этих оператора аналогичны, поэтому можно применять любой из них. Например, в следующем случае получим товары, которые стоят меньше самого дорогого товара компании Apple:
И также стоит отметить, что данный запрос можно сделать проще, переписав следующим образом:
Как работает оператор ANY (а также SOME):
x > ANY (1, 2) эквивалентно x > 1
x эквивалентно x
x = ANY (1, 2) эквивалентно x NOT (1, 2)
x <> ANY (1, 2) эквивалентно (x <> 1) OR (x <> 2)
Подзапрос как спецификация столбца
Результат подзапроса может представлять отдельный столбец в выборке. Например, выберем все заказы и добавим к ним информацию о названии товара:
Подзапросы в команде INSERT
В команде INSERT подзапросы могут применяться для определения значения, которое вставляется в один из столбцов:
Подзапросы в команде UPDATE
В команде UPDATE подзапросы могут применяться:
В качестве устанавливаемого значения после оператора SET
Как часть условия в выражении WHERE
Так, увеличим в таблице Orders количество купленных товаров компании Apple на 2:
Или установим для заказа цену товара, полученную в результате подзапроса:
Подзапросы в команде DELETE
В команде DELETE подзапросы также применяются как часть условия. Так, удалим все заказы на Galaxy S8:
Выводим количество записей в таблице MySQL
Здравствуйте, уважаемый посетитель!
Прежде, чем приступит к следующей теме и заняться формами, хочу затронуть еще один вопрос по работе с базой данных MySQL, который был задан одним из пользователей. А именно: как вывести суммарное количество записей в таблице MySQL.
Ранее, в разделе Работа с БД MySQL, довольно подробно рассматривались различные действия с БД MySQL, от подключения к ней, до ввода/вывода данных. При этом, понятно, что имеется множество возможных операций с базой данных, и заведомо предусмотреть все случаи просто невозможно.
Однако, если появился конкретный вопрос, то считаю, его необходимо рассмотреть отдельно. Тем более, что такие задачи нередко могут возникать при работе с БД. И делать это будем на примере таблицы базы данных «url», которая используется для формирования динамических страниц создаваемого сайта «newsite.local».
- Вариант с использованием SQL-функции count()
- Вариант с использованием PHP-функции count()
- Вариант с использованием PHP-функции mysqli_num_rows
- Исходные файлы сайта
Вариант с использованием SQL-функции count()
Как отмечалось выше, здесь для примера будем использовать таблицу «url», которая на данный момент содержит 6 строк. Ниже приведен скриншот ее содержимого, сделанного с помощью веб-приложения «phpMyAdmin».
Рис.1 Скриншот содержимого таблицы «url»
Для вывода количества записей можно использовать разные способы. При этом, какой применять, в большой степени зависит от конкретной задачи.
Например, если требуется определить только число строк, без выполнения с ней каких-либо других операций, вполне уместно использовать SQL-функцию «count()». Которая возвращает эту величину в соответствии с определенными критериями.
В этом случае SQL-запрос будет иметь следующий вид: «SELECT COUNT(имя поля) FROM имя_таблицы WHERE условие». При этом, если вместо имени поля указать «*» и не применять условие, то будут подсчитаны абсолютно все имеющиеся записи без каких-либо условий.
Вот такой запрос для нашей задачи, где требуется определить все суммарные записи в таблице, мы и применим. А для этого воспользуемся аналогичными, ранее составленными PHP-функциями, предназначенными для работы с базой данных MySQL.
В данном случае за основу возьмем функцию по выводу одиночной строки, заменив в ней кроме имени и параметров еще и SQL-запрос на «SELECT COUNT(*) FROM `$table`». А также ассоциативный массив на числовой, в качестве ключей которого будут использоваться не наименования полей, а числовые индексы.
Следует отметить, что получить количество записей можно и не составляя отдельную функцию, а разместив необходимый скрипт непосредственно на HTML-странице. Однако, в этом случае такое решение будет не универсально, при котором потребуется каждый раз использовать один и тот же код при выполнении однотипных действий.
В нашем варианте, используя в качестве параметра имя таблицы, можно такую функцию использовать при определении количества всех строк для разных случаев.
Для этого при ее вызове понадобится всего лишь в качестве аргумента указать имя таблицы — остальное будет выполняться составленной для этой цели универсальной функцией. PHP-код такой пользовательской функции приведен на рис.1.
//—-Функция определения количества строк таблицы MySQL————-
function countTable ($table) <
global $mysqli;
if ( !$result = $mysqli -> query ( «SELECT COUNT(*) FROM `$table`» )) <
die (‘При извлечении записей возникла ошибка: ‘ .$mysqli->errno. ‘ — ‘ .$mysqli->error );
$count = $result-> fetch_row ();
return $count[ 0 ];
Рис.2 Функция для определения количества записей с использованием SQL-функции count()
Здесь видно, что у вновь созданной функции с именем «countTable» параметром является переменная $table . Что позволяет ее использовать для любых имеющихся в базе данных таблиц.
При этом следует обратить внимание на то, что этот скрипт следует поместить в файл «functions.php» папки «mysql» корневого каталога создаваемого сайта «newsite.local», где расположены и остальные функции для работы с БД MySQL
И теперь, для проверки результата, добавим в начало файла «index.php» всего три PHP-строки, не считая комментария.
//—-Вывод количества записей с использованием SQL-функции count()—-
$count = countTable ($table);
echo ‘1 Количество записей в таблице ‘ . ‘»‘ .$table. ‘»‘ . ‘: ‘ .$count;
Рис.3 Вывод количества записей с использованием SQL-функции count()
Как видно, здесь в строке 3 переменной $table присвоено значение «url», соответствующее имени таблицы. А далее выполняется вызов функции «countTable», результат которой в виде переменной $count_bd через конструкцию echo выводится на страницу.
Если теперь открыть сайт, то в верхней части страницы должен отобразиться полученный результат, как показано на скриншоте.
Рис.4 Вывод количества записей с использованием SQL-функции count()
Таким образом мы получили нужное значение с помощью SQL-функции count(). А теперь сделаем то же самое иным способом, используя для этого одноименную не SQL, а PHP-функцию count().
Вариант с использованием PHP-функции count()
Данный способ целесообразно использовать в том случае, если помимо подсчета количества записей необходимо выполнить и их вывод. Тогда не нужно будет формировать отдельный SQL-запрос, как это делалось в предыдущем варианте, а достаточно будет использовать PHP-функцию count(), применив ее к полученному массиву, образованному при выводе данных из таблицы.
Для того, чтобы это проверить, можно использовать ранее составленные функции по выводу набора строк. В данном случае используем пользовательскую функцию для вывода всех строк без указания условия, PHP-код которой приведен в следующей таблице.
//—-Функция вывода набора всех строк таблицы——
function getAll ($table) <
global $mysqli;
if ( !$result = $mysqli -> query ( «SELECT * FROM `$table`» )) <
die (‘При извлечении записей возникла ошибка: ‘ .$mysqli->errno. ‘ — ‘ .$mysqli->error );
$array = array ();
while (( $row = $result -> fetch_assoc ()) != false ) <
detector