Contar filas de tabla


¿Qué es el comando MySQL para recuperar el recuento de registros en una tabla?

 122
Author: TimCodes.NET, 2009-12-12

11 answers

SELECT COUNT(*) FROM fooTable;

Contará el número de filas de la tabla.

Véase el manual de referencia .

 194
Author: Gregory Pakosz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-12 13:34:04

Porque nadie lo mencionó:

show table status;

Enumera todas las tablas junto con alguna información adicional, incluidas las filas estimadas para cada tabla. Esto es lo que phpMyAdmin está usando para su página de base de datos.

Esta información está disponible en MySQL 4, probablemente en MySQL 3.23.

UPDATE

Debido a que hubo un voto negativo, quiero aclarar que el número mostrado es estimado solo para InnoDB y TokuDB y es absolutamente correcto para los motores de almacenamiento MyISAM y Aria (Maria).

Esta también es la forma más rápida de ver el recuento de filas en MySQL, porque consulta como:

select count(*) from table;

Haciendo análisis de tabla completa lo que podría ser una operación muy costosa que podría tomar horas en un servidor grande de alta carga. También aumenta la E / S del disco.

La misma operación podría bloquear la tabla para inserciones y actualizaciones - esto sucede solo en motores de almacenamiento exóticos.

InnoDB y TokuDB están bien con el bloqueo de tabla, pero necesitan estar llenos escaneo de mesa.

 45
Author: Nick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-31 20:45:48

Tenemos otra forma de averiguar el número de filas en una tabla sin ejecutar select query en esa tabla.

Cada instancia de mysql tiene una base de datos information_schema. Si ejecuta la siguiente consulta, proporcionará detalles completos sobre la tabla, incluido el número aproximado de filas en esa tabla.

select * from information_schema.TABLES where table_name = 'table_name'\G
 23
Author: Santhosh Tangudu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-28 14:46:23

Simplemente:

SELECT COUNT(*) FROM `tablename`
 6
Author: David Snabel-Caunt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-12 13:34:07
select count(*) from YourTable
 5
Author: Adriaan Stander,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-12 13:34:23

Si tiene varios campos en su tabla y su tabla es enorme, es mejor NO USAR * debido a ello cargar todos los campos a la memoria y el uso de lo siguiente tendrá un mejor rendimiento

SELECT COUNT(1) FROM fooTable;
 5
Author: zhilevan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-13 12:54:08
$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;`
 2
Author: alpc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-15 18:18:50

You have to use count () devuelve el número de filas que coinciden criterios especificados

select count(*) from table_name;
 2
Author: rashedcs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-09 03:20:09

Simplemente haga un

SELECT COUNT(*) FROM table;

Puede especificar condiciones con un Donde después de eso

SELECT COUNT(*) FROM table WHERE eye_color='brown';
 0
Author: Suanbit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-27 09:39:10

Como lo menciona Santosh, creo que esta consulta es adecuadamente rápida, mientras que no se consulta toda la tabla.

Para devolver el resultado entero del número de registros de datos, para un tablename específico en una base de datos :

select TABLE_ROWS from information_schema.TABLES where TABLE_SCHEMA = 'database' 
AND table_name='tablename';
 0
Author: Mohammad Kanan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-17 21:59:29

Aquí hay un caso especial. Si nunca elimina datos de la tabla, puede usar un auto_increment id columna para contar el número de filas. Asegúrese de que id no esté configurado manualmente al insertar datos en esta tabla. Esta operación solo toma milisegundos.

SELECT id FROM table ORDER BY id DESC LIMIT 1;
 -5
Author: Yao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-11 10:24:29