在以下查询中,我使用x
和y
作为二维平面中对象的坐标,并试图将结果限制为仅在距原点 80 单位半径范围内的对象。
SELECT *,POW(x - 0,2) + POW(y - 0,2) AS distanceSquared
FROM objects
WHERE distanceSquared < 6400
这里的查询由于某种原因不起作用,mysql 说unknown column distanceSquared in where clause
. 但是,当我替换WHERE
为 时HAVING
,它工作得很好。为什么?据我所知,HAVING
仅适用于在 group by 之后使用了聚合函数的列。