在Sql请求中使用别名

时间:2014-02-15 18:30:38

标签: php mysql 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'

1 个答案:

答案 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应该是intbigint,您应该使用< 1000,而不是< '1000'