Pergunta

Usando classe Active Record do CodeIgniter e MySQL, eu tenho uma tabela de mensagens com user_id e vários outros campos, e eu quero contar quantas mensagens de cada usuário fez. Eu poderia obter registros onde user_id = $whatever e contar o número de resultados, mas eu teria que passar por cada user_id e usar essa consulta count_all_results() mais e mais para cada um.

Deve haver uma maneira melhor! Se todos os campos só tinha um campo com um 1 nele, eu poderia select_sum-se que o campo e obter uma contagem. Mas isso parece bobo.

Muito obrigado antecipadamente!

Foi útil?

Solução

Usando o registro ativo deve 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');

para $result terá o que você precisa!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top