Blog Reacción Estudio

¡Tu zona de aprendizaje!

Obtener el total de registros de una tabla utilizando una consulta SQL con LIMIT

A la hora de listar los resultados de una tabla, si esta tabla contiene bastantes registros, lo más lógico es que los vayamos mostrando de X en X utilizando una paginación. Y es bastante útil mostrar en una cadena de texto el total de registros que tiene esta tabla, algo como «Total usuarios: 365«.

Pues bien, para hacer esto en una sola consulta de la forma más óptima, debemos usar ‘SQL_CALC_FOUND_ROWS‘ y la función ‘FOUND_ROWS()‘ de MySQL.

 
Imaginemos que esta es nuestra consulta la cual obtiene los 10 primeros usuarios de nuestra tabla:

SELECT idUsuario, usuario FROM usuarios LIMIT 0,10;

Debemos añadir la opción ‘SQL_CALC_FOUND_ROWS‘ después de la palabra SELECT

SELECT SQL_CALC_FOUND_ROWS idUsuario, usuario FROM usuarios LIMIT 0,10;

Tras ejecutar nuestra consulta con la opción ‘SQL_CALC_FOUND_ROWS‘, debemos ejecutar la función ‘FOUND_ROWS()‘ para obtener el total de registros de la tabla de la consulta anterior:

SELECT FOUND_ROWS() AS total;

 
La función ‘FOUND_ROWS()‘ debemos ejecutarla justo después de haber ejecutado la consulta de la que queremos obtener todos los resultados de la tabla.