Как одним запросом посчитать количество строк с разными условиями?
Запрос следующий:
SELECT COUNT(*) as number FROM `objects` WHERE `status`='1' AND `author`=:author AND `category`='1'
Но мне нужно также посчитать
WHERE `category`=2, WHERE `category`=3 (разные значения категории), можно ли посчитать количество одним запросом, или обязательно обращаться к БД трижды?
Также, правильнее будет считать COUNT(*) или COUNT(id)? Склоняюсь к первому варианту, но всё же...
UPD:
У меня получилось вот так: 'SELECT COUNT(*) as number FROM `objects` WHERE `status`='1' AND `author`=:author group by `category`'
Затем через while назначаю переменные
while($num = $query->fetch()){
$i++;
if($i == 1) $numM = $num['number'];
if($i == 2) $numG = $num['number'];
if($i == 3) $numS = $num['number'];
$Summ= $num['number'];
}
Правильно ли так будет? (по поводу $i)
А также необъяснимая проблема — не выводит $Summ, абсолютно! Только если присвоить $Summ = $numA, а вот $Summ = $numA + $numG уже НЕ РАБОТАЕТ. Вывод ошибок ничего не показывает, что за чертовщина?