文脈上、スコープはこれに限定されませんが、ページネーション機能を備えた CakePHP 2.4.4 を使用しています。これは結果を照会し (ORDER、LIMIT、および OFFSET を使用していると思います)、結果が返されたら、フィールドを計算します。この場合、ユーザーは郵便番号を入力し、結果が返されると、検索の郵便番号と結果の郵便番号の間の地理的な距離が個別に計算されます。一度に 1 ページの結果しか表示されないため、これで注文することはできません。
これを手動で行うにはどうすればよいですか?クエリですべての結果を取得し、各結果の距離を計算し、順序付けして、そのページにないものをドロップできると思いますが、非常にコストがかかるようです。たとえば、Autotrader は何十万もの結果を返し、それらを距離で並べ替え、その場で計算することができます。
私のプロジェクトでは数学は PHP で行われますが、これをクエリ内に移動する必要があると思いますが、それはコストがかかると思います。
実際にはデータベースに保存されていない計算フィールドですべての結果を並べ替えるにはどうすればよいですか?