スポンサードリンク

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で任意の順番にソートする

スポンサードリンク