Не вижу, чем мне это может помочь. В данном примере posts_sql_view() возвращает нечто очень большое и сложное, например селект с джойнами по куче таблиц из селекта с джойнами.
Как минимум, конструировать запрос мне надо начиная с того места, где может быть WHERE. И, например, как тут - наличие LIMIT и его количество зависит от других параметров. 18.12.2013 5:34, vividsnow пишет: > https://metacpan.org/pod/SQL::Abstract > > > 2013/12/18 Nick Knutov <[email protected] <mailto:[email protected]>> > > У меня в коде в некоторых функциях, в зависимости от входных параметров, > конструируются разные 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 > [email protected] <mailto:[email protected]> | http://moscow.pm.org > > > > -- Best Regards, Nick Knutov http://knutov.com ICQ: 272873706 Voice: +7-904-84-23-130 -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
