我想在以下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'
答案 0 :(得分:1)
在<{strong> 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'
。