Vous avez besoin de compter les lignes d’une table MySQL rapidement ? Que ce soit pour afficher le nombre d’utilisateurs, de commandes ou de résultats, MySQL propose des requêtes simples et efficaces. Découvrez les meilleures méthodes pour obtenir un total précis facilement.
- Comprendre les meilleures méthodes pour obtenir rapidement le nombre d’enregistrements d’une table et exploiter cette information dans vos projets web.
- Savoir filtrer vos résultats pour compter uniquement les données utiles, comme les membres actifs, commandes validées ou recherches ciblées.
- Découvrir des conseils pratiques pour écrire des requêtes plus propres, plus rapides et adaptées aux besoins réels d’un site dynamique.
Compter les lignes d’une table en MySQL est une opération simple… mais essentielle. Que vous souhaitiez afficher le nombre d’utilisateurs inscrits, compter les commandes passées ou vérifier si une recherche retourne des résultats, vous aurez tôt ou tard besoin de savoir combien d’enregistrements se trouvent dans une table.
Même si vous débutez, cette manipulation est très accessible. Il suffit de connaître les bonnes requêtes SQL et de comprendre ce qu’elles font réellement. Dans ce tutoriel complet, vous allez apprendre à compter les lignes d’une table MySQL de plusieurs façons, avec des exemples concrets, des astuces pratiques et les erreurs à éviter.
Pourquoi compter les lignes d’une table MySQL ?
Avant de taper la moindre requête, prenons un cas réel.
Imaginez une table clients contenant tous vos utilisateurs :
| id | nom | |
|---|---|---|
| 1 | Alice | alice@email.fr |
| 2 | Bob | bob@email.fr |
| 3 | Charlie | charlie@email.fr |
Vous souhaitez afficher sur votre site :
Nous avons déjà 3 clients inscrits !
Ou encore dans l’administration :
- nombre total de commandes
- nombre d’articles publiés
- nombre de messages non lus
- nombre de visiteurs enregistrés
Dans tous ces cas, il faut compter les lignes d’une table MySQL.

Chaque ligne représente un enregistrement. Donc compter les lignes revient à compter les données stockées.
La méthode classique : COUNT(*)
La fonction la plus connue en MySQL est COUNT().
Voici la requête standard :
SELECT COUNT(*) FROM clients;
Cette requête signifie :
SELECT: je veux récupérer une informationCOUNT(*): je veux compter toutes les lignesFROM clients: dans la table clients
Résultat :
| COUNT(*) |
|---|
| 3 |
MySQL vous retourne simplement le nombre total de lignes.
C’est la méthode la plus utilisée pour compter les lignes d’une table MySQL.
Pourquoi utiliser COUNT(*) ?
Le * signifie ici : toutes les lignes.
Il ne récupère pas toutes les colonnes une par une comme certains le pensent. Ici, il sert juste à dire :
Compte tous les enregistrements.
C’est fiable, simple et recommandé.
Exemple concret avec une boutique en ligne
Imaginons une table commandes.
SELECT COUNT(*) FROM commandes;
Résultat :
248
Cela veut dire que votre boutique a enregistré 248 commandes.
Pratique pour afficher des statistiques ou suivre votre activité.
Donner un nom au résultat avec AS
Par défaut, MySQL affiche :
COUNT(*)
Ce n’est pas très élégant.
Vous pouvez renommer la colonne :
SELECT COUNT(*) AS total FROM clients;
Résultat :
| total |
|---|
| 3 |
Beaucoup plus propre.
Dans vos scripts PHP, cela simplifie aussi la récupération du résultat.
Compter uniquement certaines lignes avec WHERE
Parfois, vous ne voulez pas compter toute la table.
Par exemple : seulement les utilisateurs actifs.
Table users :
| id | nom | actif |
|---|---|---|
| 1 | Paul | 1 |
| 2 | Julie | 0 |
| 3 | Marc | 1 |
Requête :
SELECT COUNT(*) AS total FROM users WHERE actif = 1;
Résultat :
2
Vous avez donc 2 utilisateurs actifs.
Très utile pour :
- membres connectés
- commandes payées
- produits en stock
- articles publiés
Compter les lignes selon une date
Exemple : nombre de commandes aujourd’hui.
SELECT COUNT(*)
FROM commandes
WHERE DATE(date_commande) = CURDATE();
Cette requête compte uniquement les commandes du jour.
Idéal pour un tableau de bord dynamique.
👉 Pour aller plus loin : Le format date avec MySQL
COUNT(colonne) : quelle différence ?
Vous verrez parfois :
SELECT COUNT(email) FROM clients;
Attention, ce n’est pas exactement pareil.
Ici, MySQL compte uniquement les lignes où email n’est pas vide (NULL).
Exemple :
| id | nom | |
|---|---|---|
| 1 | Paul | paul@email.fr |
| 2 | Julie | NULL |
| 3 | Marc | marc@email.fr |
Requête :
SELECT COUNT(email) FROM clients;
Résultat :
2
Julie n’est pas comptée car son email est NULL.
COUNT(*) ou COUNT(colonne) : lequel choisir ?
Dans la majorité des cas :
COUNT(*)
est le meilleur choix pour compter les lignes d’une table MySQL.
Utilisez :
COUNT(colonne)
uniquement si vous voulez compter les valeurs renseignées dans cette colonne.
Compter les lignes uniques avec DISTINCT
Parfois, certaines valeurs se répètent.
Exemple, prenons la table visites :
Des formations informatique pour tous !
Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…
Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.
Découvrez mes formations Qui suis-je ?| id | pays |
|---|---|
| 1 | France |
| 2 | France |
| 3 | Belgique |
| 4 | Canada |
Si vous voulez connaître le nombre de pays différents :
SELECT COUNT(DISTINCT pays) FROM visites;
Résultat :
3
Car il y a :
- France
- Belgique
- Canada
Compter les lignes groupées avec GROUP BY
Très pratique pour les statistiques.
Table commandes
| id | statut |
|---|---|
| 1 | payée |
| 2 | attente |
| 3 | payée |
| 4 | annulée |
Requête :
SELECT statut, COUNT(*) AS total
FROM commandes
GROUP BY statut;
Résultat :
| statut | total |
|---|---|
| payée | 2 |
| attente | 1 |
| annulée | 1 |
- Vous obtenez un résumé automatique.
Magique ? Non. SQL.
Utiliser COUNT en PHP avec MySQL
Si votre site utilise PHP, voici un exemple avec PDO.
<?php
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
$sql = "SELECT COUNT(*) AS total FROM clients";
$stmt = $pdo->query($sql);
$resultat = $stmt->fetch();
echo "Nombre de clients : " . $resultat['total'];
Affichage :
Nombre de clients : 3
Simple, propre et efficace.
👉 Pour aller plus loin : Base de données PDO
Exemple réel pour un espace membre
Vous avez une table users. Vous souhaitez afficher :
152 membres nous ont rejoints.
Code :
$sql = "SELECT COUNT(*) AS total FROM users";
$stmt = $pdo->query($sql);
$data = $stmt->fetch();
echo $data['total'] . " membres nous ont rejoints.";
Cela apporte de la preuve sociale et rassure les visiteurs.
Est-ce rapide sur une grosse table ?
Sur une petite table, aucun souci, par contre sur une table contenant 100 000 lignes, 1 million de lignes voir 10 millions de lignes… Le temps de calcul peut augmenter.
- MySQL doit compter les enregistrements selon le moteur utilisé.
Mais rassurez-vous : COUNT(*) reste performant si votre base est bien conçue.
Performance avec WHERE et index
Si vous comptez souvent ceci :
SELECT COUNT(*) FROM users WHERE actif = 1;
Ajoutez un index sur actif.
Cela accélère les recherches et les comptages.
ALTER TABLE users ADD INDEX(actif);
Petit changement, gros gain possible.
👉 Pour en savoir plus :
Erreur fréquente des débutants
Beaucoup écrivent :
SELECT * FROM clients;
Puis comptent les lignes en PHP.
- C’est une mauvaise idée.
Parce que vous chargez toutes les données inutilement.
Il vaut mieux laisser MySQL faire le travail :
SELECT COUNT(*) FROM clients;
C’est plus rapide, plus propre et moins gourmand.
Compter les résultats d’une recherche
Exemple :
SELECT COUNT(*)
FROM produits
WHERE nom LIKE '%chaise%';
Cette requête compte tous les produits contenant “chaise”.
Très utile pour :
- moteur de recherche interne
- filtres e-commerce
- catalogue produit
Vérifier si une ligne existe
Parfois, vous voulez simplement savoir si un utilisateur existe.
SELECT COUNT(*)
FROM users
WHERE email = 'test@email.fr';
- Si résultat = 0 : absent
- Si résultat > 0 : existe
Pratique lors d’une inscription.
Existe-t-il une autre méthode ?
Oui, certains utilisent :
SHOW TABLE STATUS;
ou
information_schema
Mais pour les débutants, retenez ceci :
- Pour compter précisément les lignes d’une table MySQL :
SELECT COUNT(*)
C’est la base solide.
Résumé des requêtes utiles
Compter toute la table :
SELECT COUNT(*) FROM table;
Compter avec condition :
SELECT COUNT(*) FROM table WHERE condition;
Compter une colonne non vide :
SELECT COUNT(colonne) FROM table;
Compter les valeurs uniques :
SELECT COUNT(DISTINCT colonne) FROM table;
Compter par catégorie :
SELECT colonne, COUNT(*) FROM table GROUP BY colonne;
Quand vous travaillez avec MySQL :
- préférez
COUNT(*) - ajoutez
AS total - utilisez
WHEREintelligemment - évitez de charger toutes les lignes pour compter ensuite
- pensez aux index sur grosses tables
Votre serveur vous dira merci. Ou au moins il ventilera moins fort.
Comment compter les lignes d’une table MySQL ?
Pour compter les lignes d’une table MySQL, utilisez la requête suivante :
SELECT COUNT(*) FROM nom_table;
Elle retourne le nombre total d’enregistrements présents dans la table.
Quelle différence entre COUNT(*) et COUNT(colonne) en MySQL ?
COUNT(*) compte toutes les lignes de la table, tandis que COUNT(colonne) compte uniquement les lignes où cette colonne contient une valeur non nulle (NULL exclu).
Comment compter seulement certaines lignes dans MySQL ?
Vous pouvez ajouter une condition avec WHERE :
SELECT COUNT(*) FROM users WHERE actif = 1;
Cette requête compte uniquement les utilisateurs actifs.
Savoir compter les lignes d’une table MySQL fait partie des fondamentaux à maîtriser. C’est une opération simple en apparence, mais omniprésente dans les vrais projets : statistiques, tableaux de bord, espace membre, boutique en ligne, vérification de données, filtres de recherche…
La requête COUNT(*) sera souvent votre meilleure alliée. Une fois comprise, elle vous fera gagner du temps, allégera votre code PHP et rendra vos applications plus efficaces. En développement web, les petites commandes SQL sont souvent celles qui font les grands projets.
Pour aller plus loin avec MySQL :
- PhpMyAdmin : Sauvegarder BDD
- PhpMyAdmin : Importer une BDD
- Bien structurer ses tables MySQL
- L’auto-incrémentation
- Les types de données MySQL
- Liste des requêtes SQL
- Fonctions MySQL essentielles

Fondateur de l’agence Créa-troyes, affiliée France Num
Intervenant en Freelance.
Contactez-moi
