Cuenta el número de filas en cada grupo
-
06-07-2019 - |
Pregunta
Utilizando la clase Active Record de CodeIgniter y MySQL, tengo una tabla de publicaciones con user_id
y varios otros campos, y quiero contar cuántas publicaciones ha realizado cada usuario. Podría obtener filas donde user_id = $ whatever
y contar el número de resultados, pero tendría que recorrer cada user_id
y usar ese count_all_results ()
consulta una y otra vez para cada uno.
¡Debe haber una mejor manera! Si cada campo tuviera un campo con un 1
, podría select_sum
subir ese campo y obtener un recuento. Pero eso parece tonto.
¡Muchas gracias de antemano!
Solución
El uso del registro activo debe ser:
$this->db->select('field1, ... ,fieldn, count(1) as number_elements_of_row');
$this->db->group_by(array('field_group_1', ... ,'field_group_n'));
$result = $this->db->get('mytable');
¡entonces $ result
tendrá lo que necesita!
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow