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.
 

Sobre Reacción Estudio

Somos un estudio informático formado por jóvenes centrados en el desarrollo web, el diseño gráfico y la fotografía. Puedes solicitar presupuesto para tu proyecto a través de nuestra página web o por teléfono, pero en este blog hablaremos de todo lo que engloba el desarrollo web a día de hoy.


Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.     ACEPTAR