今回は以下の様なテーブル構造があった状況での並べかえを実装します
CREATE TABLE `cars` ( `id` int(11) NOT NULL AUTO_INCREMENT, `maker` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `price` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `manufacture_date` varchar(255) date NOT NULL, PRIMARY KEY (`id`) );
車のデータを保存するデータベースです。今回は車のディーラーを営んでいるという体で、このデータベースに登録している車を表示画面に表示する状況を考えます。 お客さんはなるべく安くて新しい車が欲しいので、価格が安く、製造年月日が新しい順にこのデータベースから車の情報を取得しましょう。
コードは以下の様になります
(CarsTable.php)
public function getReasonableCars(){ $query = $card->find('all', [ 'order' => ['Cars.price' => 'ASC', 'Cars.manufacture_date' => 'DESC'] ]); $row = $query->first(); return $row; }
価格はASCで安い順 日付はDESCで新しい順になります。