对于上下文,虽然范围不限于此,但我使用的是带有分页功能的 CakePHP 2.4.4。这会查询结果(我相信使用 ORDER、LIMIT 和 OFFSET),一旦返回结果,我就会计算一个字段。在这种情况下,用户输入一个邮政编码,在返回结果时,单独计算搜索邮政编码和结果邮政编码之间的地理距离。我不能这样订购,因为我一次只有一页结果。
我将如何手动执行此操作?我想我可以在查询中获得所有结果,然后计算每个结果的距离,然后订购,然后将那些不在该页面上的内容删除,但这似乎非常昂贵。例如,Autotrader 返回数十万个结果,它们可以按距离排序,然后计算。
在我的项目中,数学是在 PHP 中完成的,但我希望这需要在查询中移动,但我认为这使得它变得昂贵。
如何按未实际存储在数据库中的计算字段对所有结果进行排序?