Апрель 6, 2021
Теги: ORM, Хранение данных
Использование вычисляемых полей для выборки только необходимых данных, использование функций SQL в ORM запросах.
Примеры SQL функций, которые можно использовать в запросах: count, countDistinct, sum, min, avg, max, length, lower, upper, concat.
Выборка минимальной и максимальной даты рождения из таблицы пользователей:
$resultUserAge = \Bitrix\Main\UserTable::getList(array(
'filter' => array('ACTIVE'=>'Y'),
'runtime' => array(new \Bitrix\Main\Entity\ExpressionField(
'MIN',
'MIN(%s)',
['PERSONAL_BIRTHDAY']
),new \Bitrix\Main\Entity\ExpressionField(
'MAX',
'MAX(%s)',
['PERSONAL_BIRTHDAY']
)),
'select' => array('MIN','MAX'),
));
if($playerAge=$resultUserAge->fetch())
{
print_r($playerAge);
}
/*
Array
(
[MIN] => Bitrix\Main\Type\Date Object
(
[value:protected] => DateTime Object
(
[date] => 1901-04-06 00:00:00.000000
[timezone_type] => 3
[timezone] => Europe/Moscow
)
)
[MAX] => Bitrix\Main\Type\Date Object
(
[value:protected] => DateTime Object
(
[date] => 2021-03-24 00:00:00.000000
[timezone_type] => 3
[timezone] => Europe/Moscow
)
)
)
*/