Всі способи, як визначити кількість рядків в MySQL

10

Від автора: один мій знайомий стверджує, що Дід Мороз існує. В нього він повірив після того, як його молодшому синові на Новий Рік подарували 10 кг шоколадних цукерок. Тепер на наступний рік доведеться просити у Діда Мороза пломби для всіх членів родини! На щастя, в веб-програмуванні можна застрахуватися від таких несподіванок, і визначити кількість рядків в MySQL заздалегідь.

Навіщо знати скільки?

Будь-яка таблиця складається із стовпців і рядків. Обсяг зберігаються в базі даних залежить від того, скільки рядків міститься в кожній таблиці.

Подібно до того, як число дірок в зубах людини залежить від з’їденого раніше обсягу цукерок. Точніше, від загальної ваги солодощів, яким «обдарували» вашої дитини на Новий Рік Всі способи, як визначити кількість рядків в MySQL .

Зрозуміло, що від великого числа рядків у базі MySQL пломб у роті не додасться, але все ж знання цього параметра може знадобитися при оптимізації роботи вашого сайту, для запуску деяких скриптів і т. д.

Легко!

Для отримання в MySQL кількості рядків не обов’язково «метикує» в складанні SQL-запитів. Досить просто відкрити в програмній оболонці потрібну таблицю і подивитися id останнього рядка. Саме цей стовпець найчастіше використовують в якості унікального ключа, і його значення генерується автоматично (автоинкремент) шляхом збільшення одиниці(+1) до попереднього.

Щоб довести цю «аксіому», відкриємо в phpMyAdmin таблицю будь БД. Наприклад, таблицю animal. Як видно на скріншоті, значення стовпця id йде по порядку, від 1 до…. Так, відставити! А куди втік котяра з «ідентифікаційним номером» 4? Напевно, знову «собачок» під номерами 5 і 6 злякався Всі способи, як визначити кількість рядків в MySQL

Всі способи, як визначити кількість рядків в MySQL

У цій базі MySQL кількість рядків у таблиці можна просто порахувати на пальцях». Але що робити, якщо в таблиці 7 рядків, а кілька сотень? Наприклад, як у цій.

Всі способи, як визначити кількість рядків в MySQL

І це лише одна з восьми сторінок вибірки. Насправді число записів може обчислюватися не тільки сотнями, але й тисячами. До того ж тут немає стовпця id, тому що він не є обов’язковим. Його наявність залежить від структури всієї БД, оскільки в ній значення всіх рядків взаємопов’язані між собою. Виходить, що описаний вище метод підрахунку рядків MySQL не завжди діє.

Кілька правильних методів

Як говориться, перший метод «комом», тому розглянемо кілька більш ефективних і менш простих способів:

Функція COUNT() – повертає кількість рядків. Є вбудованою функцією SQL. Все таки давайте дізнаємося, кількість записів великий таблиці БД, скріншот якої наведено вище. Код запиту:

SELECT COUNT( * ) FROM `country`

Всі способи, як визначити кількість рядків в MySQL

Виявляється в таблиці country цілих 239 записів! Зрозуміло, що для їхнього підрахунку не вистачить пальців ні на руках, ні на ногах (якщо не використовувати кінцівки інших людей або тварин)). Як бачите, цей спосіб в MySQL підрахунку кількості рядків працює набагато точніше і найчастіше використовується професіоналами.

Але ця функція вміє не тільки це! Наприклад, з її допомогою можна дізнатися, скільки з «поданих» в БД країн у Європі:

SELECT COUNT( * ) FROM `country` WHERE `Continent` = ‘Europe’

Всі способи, як визначити кількість рядків в MySQL

А ще, скільки разів кожна країна згадується в таблиці. Приклад запиту:

SELECT `Name` , COUNT( * ) FROM `country` GROUP BY `Name`

Всі способи, як визначити кількість рядків в MySQL

За допомогою цього запиту ми дізналися кількість рядків в MySQL, в яких згадується кожна з країн. З результатів його виконання видно, що по одному разу.

Мало не забув! Якщо у вас ще немає в наявності бази world, з якою ми сьогодні працюємо, то її можна завантажити за цим посиланням з офіційного сайту розробників СУБД MySQL. Після скачування архіву з нею потрібно розархівувати і потім імпортувати сервер БД. В phpMyAdmin це можна зробити через пункт основного меню «Імпорт».

Більш докладно про цю процедуру я розповідав в одному з попередніх матеріалів.

Функція MAX() – в деяких випадках вона також дозволяє в MySQL дізнатися кількість рядків у таблиці. Чому іноді? Зараз поясню. Пам’ятайте перший спосіб підрахунку, який ми розглянули на початку. Він передбачає, що найбільше значення стовпця id дорівнює кількості записів. Застосування даної функції є свого роду «автоматизацією» того методу. MAX() повертає максимальне значення вказаного стовпця (id). Для тестування функції ми буде використовувати таблицю city, яка також входить до складу бази world. Код запиту:

SELECT MAX(`ID`) FROM `city`

Всі способи, як визначити кількість рядків в MySQL

В результаті виконання запиту ми отримали значення стовпця останнього рядка. Виходить, що MySQL порахував кількість рядків.

Якщо потрібно, то можна отримати останню запис повністю:

SELECT MAX(`ID`),`Name`,`CountryCode`,`District`,`Population` FROM `city`

Зверніть увагу, що для вибірки перед викликом функції замість «*» ми перераховуємо назва всіх стовпців. Це особливість синтаксису при застосуванні вбудованих функцій в MySQL.

Визначення кількості записів в PHP

Часто в коді сайтів PHP MySQL кількість рядків потрібно отримати для того, щоб потім передати це значення в якості вхідного параметра для подальшої обробки. Це можна зробити за допомогою наступного коду:

query(«SELECT * FROM `country`»)) {
printf(«В таблиці» %d рядків.\n», $result->num_rows);
$result->close();
}
mysqli_close($con);
?>

Результат в MySQL підрахунку кількості рядків:

Всі способи, як визначити кількість рядків в MySQL

Я вважаю, що ми впоралися із завданням, і дізналися, як повертає MySQL кількість рядків у результаті. Тепер можна легко занести кожну цукерку в БД під окремим ID…. А краще їх відразу з’їсти. І щоб не було дірок в зубах, цукерки можна відразу ковтати Всі способи, як визначити кількість рядків в MySQL