- 追加された行はこの色です。
- 削除された行はこの色です。
* SELECT - [[DBIx::Class::ResultSet>http://search.cpan.org/~ash/DBIx-Class-0.08006/lib/DBIx/Class/ResultSet.pm]][#ec0dd122]
* SELECT [#g8767459]
http://search.cpan.org/~ash/DBIx-Class-0.08010/lib/DBIx/Class/ResultSet.pm#search
http://search.cpan.org/perldoc?DBIx::Class::ResultSet#search
** SEARCH [#u5289657]
$rs = $c->model('DB::User')->search({address => 'tokyo'},{order_by => ['name', 'id']})
$rs = $c->model('DB::User')->search([{address => 'tokyo'},{address => 'osaka'}]) # "tokyo" OR "osaka"
$rs = $c->model('DB::User')->search({age => {'>=' => 20})
$rs = $c->model('DB::User')->search({hobby => undef) # SQL:"hobby is null"
** FIND [#he6a13f8]
プライマリキーで検索する。見つからないときは、undefが返ってくる。
my $cd = $schema->resultset('CD')->find(5);
** LIKE [#f4b07f2c]
$rs = $rs->search_like({title => '%blue%'});
** IN [#md6dc17d]
$c->model('DB::User')->search({user_id => {-in => \@user_ids}})
** OR [#k5895aa6]
$rs->search([{user.address => '東京'},{user.address => '大阪'}], {join => 'user'});
** GROUP BY (AS)[#g35ffed7]
$rs->search({},{
select => ['name',{sum=>'point'}],
as => ['name','point'],
group_by => ['name'],
});
$point = $rs->next->get_column('point');
** JOIN (2つのテーブルと) [#s1746a0e]
SELECT order.* FROM order JOIN order_detail ON order.id = order_detail.order_id
JOIN goods order_detail.goods_id = goods.id
WHERE goods.name = 'book'
$rs = $c->model('DB::Order')->search({
"goods.name" => 'book',
},{
join => {order_detail => 'goods'}
});
** PREFETCH [#r9685ba3]
$rs = $rs->search(undef,{prefetch => 'user', join => 'user'});
ジョインするテーブルをjoin=>'TABLE名'で明示する事。