(CakePHP 2.x) findで取得したデータを任意の順番に並び替える

CakePHP

CakePHP

findでデータを取得した時に

ORDER BYの降順・昇順ではうまく並び変えられないことがありました。

MYSQLのFIELDを使うと任意の順番に並び替えることができます。

その使い方の覚書です。

スポンサードリンク

MYSQLのFIELDを使う

findのorderを指定するときにFIELDを指定します。

$order = array('FIELD(Model.id,1,2,5,6,8,7,4,3,10,9)');

//取得した順番で並び替え
$this->Model->find('all', array(
         'order' => $order
)));

上記の様にするとidが

1,2,5,6,8,7,4,3,10,9の順番で表示されます。

う~ん、便利です。

(参考)
MySQLのselectで任意の順番にソートする

CakePHP2 実践入門 (WEB DB PRESS plus)

新品価格
¥3,110から
(2015/1/27 23:08時点)

スポンサードリンク

コメントを残す

サブコンテンツ

このページの先頭へ