Skip to content
do- edited this page Jan 21, 2018 · 2 revisions

Описание

Формирует для заданной выборки (ссылки на список хэшей, как правило, получаемой как результат sql_select_all или sql_select_all_cnt) список id, пригодный для подстановки в SQL-выражение 'IN ()', а также индекс: хэш, ключами которого являются те же значения id, а значениями — ссылки соответствующие на хэши, составляющие выборку.

Такую комбинацию можно эффективно применять при вычислении статистических данных, относящихся к малому подмножеству большой таблицы.

По умолчанию уникальным номером записи считается компонента с именем 'id', пустым списком id — скаляр '-1', а индекс набирается в пустой анонимный хэш. Всё это можно переопределить опциями id, empty и idx соответственно.

Синопсис

 my ($ids, $idx) = [[ids]] ($item -> {records});
 
 [[sql_select_loop]] (
  "SELECT ... WHERE id IN ($ids)",
  sub {$idx -> {$i -> {id}} -> {sum} = $i -> {sum}},
 );
 my ($ids, $idx) = [[ids]] ($item -> {records}, {
  field => 'ord',
  empty => '0',
  idx   => $some_existing_hashref,
 });

Clone this wiki locally