在 Sql 请求中使用别名



我想在下面的sql请求中使用别名。

我找不到可行的方法来做到这一点。

请问我的错误在哪里?

谢谢。

SELECT * , get_distance_metres('44.12306832854452',  '-77.34566731195382', Latitude, Longitude)
AS proximite_r
FROM myDB
WHERE  `Status` =  '1'
AND  `proximite_r` <  '1000'
ORDER BY proximite_r ASC

此行

AND  `proximite_r` <  '1000'

返回以下错误

#1054 - Unknown column 'proximite_r' in 'where clause'

WHERE表达式在SELECT表达式之前处理;因此,不能在WHERE表达式中使用别名。

但是,使用 MySQL,您可以使用HAVING(请参阅 https://dev.mysql.com/doc/refman/5.0/en/select.html):

SELECT * , get_distance_metres('44.12306832854452',  '-77.34566731195382', Latitude, Longitude)
AS proximite_r
FROM myDB
WHERE  `Status` =  '1'
HAVING `proximite_r` <  '1000'
ORDER BY proximite_r ASC

此外,proiximate_r应该是intbigint,您应该使用 < 1000 ,而不是 < '1000'

最新更新