Phalcon:不能在where / having子句中使用别名列

时间:2015-09-04 23:56:34

标签: php mysql where-clause phalcon calculated-columns

我必须选择一些与给定坐标相距一定距离的位置点。 提出查询

$locations = Locations::query()->columns(['id','distance' => '(1+2)'])
                ->order('distance')
                ->having('distance < 10')
                ->execute();

产生错误:

SELECT id, (1+2) AS distance FROM [Multiple\Base\Models\Locations] GROUP BY [distance < 10] ORDER BY distance (116)...

为什么我可以在命令子句中使用'distance'别名,但不能使用/ where?

如何获得它?

下面的查询有效,但我需要按距离排序结果集并在视图中使用距离......

$locations = Locations::query()->columns(['id'])
                    ->having('(1+2) < 10')
                    ->execute();

1 个答案:

答案 0 :(得分:0)

这是MySQL强加的限制,而不是Phalcon。尝试执行:

SELECT id, (1+2) AS distance FROM locations WHERE distance < 10;
从mysql命令行

,您将收到相同的错误。