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!

¿Fue útil?

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
scroll top