una registros num_rows num mysqli_num_rows mysql_num_rows ejemplos contar consulta php mysql codeigniter pagination

php - registros - Encuentra el número total de resultados en la consulta mySQL con desplazamiento+límite



num_rows php (4)

Estoy haciendo una función de paginación usando Codeigniter, pero creo que esto se aplica a la codificación PHP / mySQL en general.

Estoy recuperando listas de directorios usando desplazamiento y límite dependiendo de cuántos resultados quiero por página. Sin embargo, para conocer el número total de páginas requeridas, necesito saber (número total de resultados) / (límite). En este momento estoy pensando en ejecutar la consulta SQL por segunda vez, luego contar el número de filas requeridas pero sin usar LIMIT. Pero creo que esto parece ser un desperdicio de recursos computacionales.

¿Hay alguna forma mejor? ¡Gracias!

EDITAR: Mi consulta SQL utiliza DONDE también para seleccionar todas las filas con un particular ''category_id''



Teniendo en cuenta que SQL_CALC_FOUND_ROWS requiere invocar FOUND_ROWS() después, si desea obtener el recuento total con los resultados devueltos desde su límite sin tener que invocar un segundo SELECT , utilizaría los resultados de JOIN derivados de una subquery :

SELECT * FROM `table` JOIN (SELECT COUNT(*) FROM `table` WHERE `category_id` = 9) t2 WHERE `category_id` = 9 LIMIT 50

Nota: Cada tabla derivada debe tener su propio alias, así que asegúrese de nombrar la tabla unida. En mi ejemplo, utilicé t2 .


SELECT COUNT(*) FROM table_name WHERE column = ''value'' devolverá el número total de registros en una tabla que coincida con esa condición muy rápidamente.

Las operaciones de SELECT LA SELECT DATOS son usualmente "baratas" (en cuanto a los recursos), así que no se sienta mal por usarlas de manera razonable.

EDITAR: se agregó WHERE después de que el OP mencionó que necesitan esa característica.


SELECT COUNT(id) FROM `table` WHERE `category_id` = 9

Te da el número de filas para tu categoría específica.