(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

CakePHP2実践入門 (WEB+DB press plusシリーズ) [ 安藤祐介 ]

価格:3,110円
(2019/9/21 06:25時点)
感想(0件)

スポンサードリンク

コメントを残す

サブコンテンツ

このページの先頭へ