Contare il numero di righe in ciascun gruppo
-
06-07-2019 - |
Domanda
Usando la classe Active Record di CodeIgniter e MySQL, ho una tabella di post con user_id
e vari altri campi e voglio contare quanti post ha scritto ciascun utente. Potrei ottenere righe in cui user_id = $ qualunque
e contare il numero di risultati, ma dovrei scorrere ogni user_id
e usare quel count_all_results ()
interrogazione ripetutamente per ognuna.
Deve esserci un modo migliore! Se ogni campo avesse solo un campo con un 1
, potrei select_sum
su quel campo e ottenere un conteggio. Ma questo sembra stupido.
Molte grazie in anticipo!
Soluzione
L'uso del record attivo dovrebbe essere:
$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');
quindi $ result
avrà quello che ti serve!
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow