Подсчитайте количество строк в каждой группе
-
06-07-2019 - |
Вопрос
Используя класс Active Record CodeIgniter и MySQL, у меня есть таблица постов с user_id
и различными другими полями, и я хочу подсчитать, сколько постов сделал каждый пользователь. Я мог бы получить строки, в которых user_id = $ what
, и посчитать количество результатов, но мне пришлось бы перебирать каждый user_id
и использовать этот count_all_results ()
запрашивать снова и снова для каждого.
Должен быть лучший способ! Если бы в каждом поле было только поле с 1
, я мог бы select_sum
увеличить это поле и получить счетчик. Но это кажется глупым.
Заранее большое спасибо!
Решение
Использование активной записи должно быть:
$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');
так что $ result
будет иметь то, что вам нужно!
Не связан с StackOverflow