++ за идею.
- за прочитать несколько раз, чтобы вьехать.
+ за ~~@$limit
18.12.2013 12:07, vividsnow пишет:
как вариант что-то вроде:
https://gist.github.com/vividsnow/8d294801959975730fc3
(возможно более специфичное к вашей задаче)
On 12/18/2013 03:44 AM, Nick Knutov wrote:
Не вижу, чем мне это может помочь.
В данном примере 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
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org