[Dbix-class] Using { count => 'me.list_id' } with AS hack from the FAQ

John Napiorkowski jjn1056 at yahoo.com
Wed Oct 11 03:07:26 CEST 2006



--- Matt S Trout <dbix-class at trout.me.uk> wrote:

> John Napiorkowski wrote:
> > --- Ash Berlin <ash at cpan.org> wrote:
> > 
> >> Kevin Old wrote:
> >>> Hello everyone,
> >>>
> >>> I'm trying to use the hack defined in the FAQ
> for
> >> "sort my results
> >>> based on fields I've aliased using as" with the
> >> following statement
> >>> which includes a count.
> >>>
> >>> $schema->resultset("MyTable")->search(undef, {
> >> select => [ { count =>
> >>> 'list_id'} ], as => [ 'list_count' ] });
> >>>
> >>> Can someone give me the syntax for this
> statement
> >> for the hack?  I've
> >>> tried just about every combination of inserting
> \'
> >> as list_count' but
> >>> nothing seems to work.
> >>>
> >>> Any help is greatly appreciated,
> >>> Kevin
> >>>   
> >> Define doesn't work.
> >>
> >> If you mean $rs->list_count says no such method,
> >> then yes - it doesn't 
> >> create an accessor for it. to
> >> $rs->get_column('list_count')
> >>
> >> If you mean the query doesn't run, then please
> tell
> >> us what error it gives.
> >>
> >> Ash
> > 
> > I have something similar where I try to get the
> max
> > value for a given column and I also had trouble
> > getting it to work.  The key was to remember that
> you
> > have a resultset returned, not a row.  Here's how
> I do
> > it (It's a catalyst based example but should work
> > similarly:
> > 
> > my $params = { 
> > 	
> >  select	=> {MAX => 'updated' }, 
> >  as	=> 'updated', 	
> > }
> > 
> > my $newest =
> $c->model('db::members')->search(undef,
> > $params);
> > 
> > my $updated = newest->single->updated;
> 
> Erm.
> 
>
$c->model('db::members')->get_column('updated')->max;
> 
> seems so much less work to me.

There was a reason I ended up doing it this way but
now I don't fully recall :)  I think it was because
that didn't work for me with my paged resultsets.  I
needed to get the max something from the current page,
not from the table as a whole.  So that ended up being
more complicated.  I cut some stuff out of the above
example to clarify it.  Maybe that's fixed now, I
wrote this code several months ago and this project
moves really fast.  I'll give it another try

-john

> 
> -- 
>       Matt S Trout       Offering custom
> development, consultancy and support
>    Technical Director    contracts for Catalyst,
> DBIx::Class and BAST. Contact
> Shadowcat Systems Ltd.  mst (at)
> shadowcatsystems.co.uk for more information
> 
> + Help us build a better perl ORM:
> http://dbix-class.shadowcatsystems.co.uk/ +
> 
> _______________________________________________
> List:
>
http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
> Wiki: http://dbix-class.shadowcatsystems.co.uk/
> IRC: irc.perl.org#dbix-class
> SVN:
>
http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
> Searchable Archive:
>
http://www.mail-archive.com/dbix-class@lists.rawmode.org/
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



More information about the Dbix-class mailing list