• 追加された行はこの色です。
  • 削除された行はこの色です。
* 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名'で明示する事。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS