Как-то ведёт себя странно эта операция. Может, я не так делаю?
Код |
---|
<?php
$hlblock = \Bitrix\Highloadblock\HighloadBlockTable::getById(5)->fetch();
$entity = \Bitrix\Highloadblock\HighloadBlockTable::compileEntity($hlblock);
$Query = new \Bitrix\Main\Entity\Query($entity);
$rsData = $entity_data_class::getList([
'sel ect' => ['CNT', 'UF_ALBUM'],
'runtime' => [
new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(*)')
],
'filter' => ['@UF_ALBUM'=>implode(',', $UF_ALBUMS), '>CNT' => 0],
'group' => ['UF_ALBUM'],
]);
|
Видит только одну строку в результате, тогда как
Код |
---|
SELECT COUNT(*) as CNT, UF_ALBUM FR OM photoalbum_photo GROUP BY UF_ALBUM HAVING UF_ALBUM IN(1, 5, 6, 7) AND CNT>0
|
возвращает 4 строки с правильным количеством
CNT.
UPD: Оказалось, не нужно $UF_ALBUMS склеивать в строку, надо передавать сразу массивом. Хотя, если, к примеру, взять CFile::GetList, там почему-то нужно склеивать. Спагетти, короче.