Skip to content

sql_select_all_cnt

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

Описание

Исполняет оператор SQL с заданными аргументами и возвращает выборку (список хэшей) плюс количество записей в том же запросе без выражения LIMIT.

Предупреждение

Стоит иметь в виду, что при использовании этой процедуры сервер БД, хоть и выдаёт ограниченный результат, но сканирует выборку полностью. Так что бывает гораздо эффективнее достать ту же выборку при помощи sql_select_all, а полное количество строк вычислить отдельным запросом (вызов sql_select_scalar), поскольку при этом не нужна сортировка и можно обойтись без лишних JOIN'ов, а то и вообще вычислить результат, не заглядывая в таблицу: по одному индексу.

Синопсис

 ...
 
 ($item -> {docs}, $item -> {cnt}) = sql_select_all (<<EOS, @params, {fake => 'docs'});
  SELECT 
   *
  FROM 
   docs
  WHERE 
   1=1
   $filter
  ORDER BY 
   ...
  LIMIT
   ...
 EOS

Clone this wiki locally