[Moscow.pm] конструкторе sql запросов
Nick Knutov
mail на knutov.com
Вт Дек 17 15:44:16 PST 2013
Не вижу, чем мне это может помочь.
В данном примере posts_sql_view() возвращает нечто очень большое и
сложное, например селект с джойнами по куче таблиц из селекта с джойнами.
Как минимум, конструировать запрос мне надо начиная с того места, где
может быть WHERE. И, например, как тут - наличие LIMIT и его количество
зависит от других параметров.
18.12.2013 5:34, vividsnow пишет:
> https://metacpan.org/pod/SQL::Abstract
>
>
> 2013/12/18 Nick Knutov <mail на knutov.com <mailto:mail на knutov.com>>
>
> У меня в коде в некоторых функциях, в зависимости от входных параметров,
> конструируются разные sql запросы. Пример:
>
> my $sql = posts_sql_view();
> $sql .= ' WHERE ' if $type or $id or $main;
> do { $sql .= ' ty.id =? '; push @params, $type;} if $type;
> do { $sql .= ' AND p.id =? LIMIT 1'; push @params, $id
> } if $id;
> $sql .= ' ORDER BY id DESC ' unless $id;
> do { $sql .= ' LIMIT ? ' ; push @params, $limit } if $limit and not $id;
>
> Мне не нравится как это визуально выглядит. Как бы вы это переписали,
> чтобы было понятнее и читабельнее?
>
> ps: в некоторых других случаях можно было бы использовать && вместо
> do{}, но не тут.
>
> pps: ORM предлагать и обсуждать не надо. Как минимум потому, что запросы
> сложные и сложность/стоимость проверки того, что генерирует ORM
> многократно выше любого профита от ORM в данной ситуации.
>
> --
> Best Regards,
> Nick Knutov
> http://knutov.com
> ICQ: 272873706
> Voice: +7-904-84-23-130 <tel:%2B7-904-84-23-130>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org <mailto:moscow-pm на pm.org> | http://moscow.pm.org
>
>
>
>
--
Best Regards,
Nick Knutov
http://knutov.com
ICQ: 272873706
Voice: +7-904-84-23-130
Подробная информация о списке рассылки Moscow-pm