[FuelPHP] クエリビルダを使ってランダム(RAND())に取得する
RAND()
を使うときに少し引っ掛かったのでメモ。
方法
MYSQL の場合
SELECT文でRAND()
SELECT
col_name
FROM
table_name
ORDER BY RAND()
LIMIT 4;
FuelPHP のクエリビルダの場合
DB::select('col_name')
->from('table_name')
->limit(4)
->order_by( DB::expr('RAND()') )
->execute();
ORDER BY 句にRAND()
を指定するのだが、関数を使うことになるので単純な「ソート条件('id', 'desc')」を与えてもダメ。DB::expr()
を使う必要がある。