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

Matt S Trout dbix-class at trout.me.uk
Wed Oct 11 01:24:06 CEST 2006


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.

-- 
      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/ +



More information about the Dbix-class mailing list