検索結果をランダムに表示して頂戴、それも3件程みたいな用件にて
取得した結果を map やら grepやら使ってごにょごにょしてもいいんですけど
検索するときにできないかなと思い書いてみました。
Friendテーブルみたいのがあったとして
my $friends = $schema->resultset('Friend')->search( {}, { '+select' => [ \ 'RAND() as rand', ], '+as' => ['rand'], cache => 1, page => 1, rows => 3, order_by => 'rand' }
こんな感じでできました。
+asはなくてもいいです、どうせとらないので、、、
とおもったのですが付けないとカラムがずれてとれてしまうので
つけました。
結果こんなのが出ます
SELECT me.seq, me.name, RAND() as rand FROM FRIEND me ORDER BY rand LIMIT 3
おしまい