pdoFetch, добавить в select COUNT(*)
Василий, доброе утро!
Не подскажешь, есть ли возможность получить данные где в select будет кроме имен полей, псевдополе COUNT(*)?
Мне надо сгруппированный запрос вроде этого выполнить, но только через pdoFetch
Не подскажешь, есть ли возможность получить данные где в select будет кроме имен полей, псевдополе COUNT(*)?
Мне надо сгруппированный запрос вроде этого выполнить, но только через pdoFetch
"SELECT `$name` as val, COUNT(*) as cnt FROM `modx_ms2_products` WHERE price > 0 AND id IN ( $this->idsFiltered ) GROUP BY `$name`;"
Сейчас у меня берет все как надо, но без COUNT():$conf = array(
'class' => 'msProductData',
//'select' => $name.', COUNT(*) as cnt ',
'select' => $name,
'where' => $nWere,
'groupby' => $name,
'fastMode' => true,
'return' => 'sql',
'limit' => 0
);
$this->pdo->setConfig($conf);
$fRes = $this->pdo->run();
Комментарии: 2
Чтобы не было автоматической обработки полей select, нужно явно указать имя класса:
Ну и pdoFetch автоматически выставляет плейсхолдер total с количеством результатов — не зря же в запросе SQL_CALC_FOUND_ROWS.
$conf = array(
'class' => 'msProductData',
'select' => 'msProductData.id, COUNT(*) as cnt ',
'return' => 'sql',
'limit' => 0
);
$pdo->setConfig($conf);
$res = $pdo->run();
echo $res;
SELECT SQL_CALC_FOUND_ROWS msProductData.id, COUNT(*) as cnt FROM `modx_ms2_products` AS `msProductData` ORDER BY msProductData.id ASC
Ну и pdoFetch автоматически выставляет плейсхолдер total с количеством результатов — не зря же в запросе SQL_CALC_FOUND_ROWS.
Спасибо!!!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.