Sql select all hash

Материал из Eludia
Перейти к: навигация, поиск

Описание

Извлекает выборку, подобно sql_select_all, однако не в список, а в хэш, ключами которого являются значения поля id. Эту процедуру удобно применять для извлечения небольших словарей, которые требуются по ходу обработки выборок в тех случаях, когда явный JOIN по каким-либо причинам оказывается неэффективным.

В частности, такая ситуация складывается при вычислении статистики

Синопсис (Perl5)

my $cnt_docs = sql_select_all_hash (
 "SELECT id_rubric AS id, COUNT(*) AS cnt FROM docs WHERE fake = 0 AND id_rubric IN ($ids) GROUP BY 1"
);

my $cnt_rubs = sql_select_all_hash (
 "SELECT parent AS id, COUNT(*) AS cnt FROM rubrics WHERE fake = 0 AND id_rubric IN ($ids) GROUP BY 1"
);

foreach my $i (@rubrics) {

  $i -> {cnt_docs} = $cnt_docs -> {$i -> {id}} -> {cnt};
  $i -> {cnt_rubs} = $cnt_rubs -> {$i -> {id}} -> {cnt};

}
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Разработчику
Администратору
Инструменты