繁体   English   中英

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

[英]Phalcon: Cannot use alias column in where/having clause

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

$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)...

为什么我可以在order子句中使用'distance'别名,而不能在have / where中使用呢?

如何获得?

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

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

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

SELECT id, (1+2) AS distance FROM locations WHERE distance < 10;

从mysql命令行中,您将收到相同的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM