Sql select ids
Материал из Eludia.
Описание
Принимает на вход SQL-запрос с единственным полем (аналогично sql_select_col) и выдаёт список выбранных непустых значений, сконкатенированный через запятую. Если выборка пуста, возвращает значение "-1". Таким образом, возвращаемое значение всегда пригодно для подстановки в SQL-предикат " id_some_table IN (...) ".
В списочном контексте в качестве 2-го результата в зависимости от СУБД возвращает либо тот же самый список (MySQL), либо строку SQL с подставленными параметрами (все прочие). Это значение также годится для подстановки в IN, причём лучше подходит в плане эффективности. Однако оно, естественно, не может использоваться в качестве списка как такового (например, анализироваться split) и не подходит для унаследованного кода.
В настоящее время рекомендуется использовать функцию sql как для получения списков id, так и для их подстановки в сложные запросы.
| Это одна из многочисленных функций API Eludia.pm для работы с БД. Как правило, её результат может быть получен с использованием процедуры sql. При этом объём программного кода сокращается, иногда — в несколько раз. |
Синопсис (Perl 5)
my $ids = sql_select_ids ('SELECT id_type FROM users_types WHERE id_user = ?', $_USER -> {id});
my ($ids, $raw_sql) = sql_select_ids ('SELECT id_type FROM users_types WHERE id_user = ?', $_USER -> {id});
| На этой странице упоминается Eludia.php: порт Eludia.pm на PHP. Данный проект был доведён до рабочей бета-версии, однако впоследствии заморожен и в настоящее время не поддерживается. |
Синопсис (PHP)
$ids = sql_select_ids ('SELECT id_type FROM users_types WHERE id_user = ?', array ($_USER -> {id}));


