Phalcon: нельзя использовать столбец псевдонимов в предложении where / using

Я должен выбрать несколько точек на расстоянии от заданных координат.
Представленный запрос

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

Почему я могу использовать псевдоним «расстояние» с предложением заказа, но не могу с наличием / где?

Как получить его?

Запрос ниже работает, но мне нужно упорядочить набор результатов по расстоянию и использовать расстояние в представлениях …

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

2

Решение

Это ограничение, наложенное MySQL, а не Phalcon. Попробуйте выполнить:

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

из командной строки mysql, и вы получите ту же ошибку.

0

Другие решения

Других решений пока нет …