我想在下面的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
应该是int
或bigint
,您应该使用 < 1000
,而不是 < '1000'
。