自明といえば自明だが、ドキュメントで使用例が書かれていなかったので記しておく。\\
スキーマからリザルトセットを引っ張ってくるとき,カラムの値そのものではなく、カラムの値にSQL関数を適用したい場合,\\
my $rs = $schema->resultset(’Person’)->search(
{},
{ select => [ ’name’, { LENGTH => ’name’ } ],
as => [qw/ name name_length /],
}
);
とすると、
select name as name , LENGTH(name) as name_lenght from Person;
というSQL文が生成される。
select name as name , date_format(birthday, '%Y/%m/%d') as birthday_string from Person;
のような結果が欲しい場合は、
my $rs = $schema->resultset(’Person’)->search(
{},
{ select => [ ’name’, { date_format => [’birthday’,"'%Y%m/%d'"] } ],
as => [qw/ name birthday_string /],
}
);
のように、引数をリストに並べて書く。
定数文字列の場合、ダブルクォートの内部がそのままSQLとして渡されるので、シングルクォートで括っておく事に気をつける。