Quelle est la commande MySQL pour récupérer le nombre d'enregistrements dans une table?
SELECT COUNT(*) FROM fooTable;
comptera le nombre de lignes dans la table.
Voir le manuel de référence .
Parce que personne n'en a parlé:
show table status;
répertorie toutes les tables avec des informations supplémentaires, y compris des lignes estimées pour chaque table. C'est ce que phpMyAdmin utilise pour sa page de base de données.
Cette information est disponible dans MySQL 4, probablement dans MySQL 3.23 trop longtemps.
METTRE À JOUR
En raison du vote négatif, je tiens à préciser que le nombre indiqué est estimé uniquement pour InnoDB et TokuDB et qu'il est tout à fait correct pour les moteurs de stockage MyISAM et Aria (Maria).
C'est aussi le moyen le plus rapide de voir le nombre de lignes sur MySQL, car une requête comme celle-ci:
select count(*) from table;
Faire une table complète permet d’analyser ce qui pourrait être une opération très coûteuse pouvant prendre des heures sur un gros serveur à forte charge. Cela augmente également les E/S du disque.
La même opération peut bloquer la table pour les insertions et les mises à jour - cela se produit uniquement sur des moteurs de stockage exotiques.
InnoDB et TokuDB acceptent le verrouillage de table, mais nécessitent une analyse complète de la table.
Nous avons un autre moyen de connaître le nombre de lignes dans une table sans exécuter une requête select
sur cette table.
Chaque instance MySQL a une base de données information_schema. Si vous exécutez la requête suivante, elle fournira des informations complètes sur la table, notamment le nombre de lignes approximatives de cette table.
select * from information_schema.TABLES where table_name = 'table_name'\G
Simplement:
SELECT COUNT(*) FROM `tablename`
select count(*) from YourTable
Si vous avez plusieurs champs dans votre table et que votre table est énorme, il vaut mieux NE PAS UTILISER *
, car elle charge tous les champs en mémoire et l'utilisation des éléments suivants aura de meilleures performances
SELECT COUNT(1) FROM fooTable;
$sql="SELECT count(*) as toplam FROM wp_postmeta WHERE meta_key='ICERIK' AND post_id=".$id;
$total = 0;
$sqls = mysql_query($sql,$conn);
if ( $sqls ) {
$total = mysql_result($sqls, 0);
};
echo "Total:".$total;`
Il suffit de faire un
SELECT COUNT(*) FROM table;
Vous pouvez spécifier des conditions avec un Où après
SELECT COUNT(*) FROM table WHERE eye_color='brown';
Vous devez utiliser count () renvoie le nombre de lignes qui correspond à un critère spécifié
select count(*) from table_name;
Comme mentionné par Santosh, je pense que cette requête est suffisamment rapide, même si elle n’interroge pas tout le tableau.
Pour renvoyer un résultat entier du nombre d'enregistrements de données, pour un nom_table spécifique dans une base de données particulière:
select TABLE_ROWS from information_schema.TABLES where TABLE_SCHEMA = 'database'
AND table_name='tablename';