[mysql]到 Sql 请求使用别名

标签: sql MySQL PHP
发布时间: 2015/6/11 23:42:24
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想在下面的 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:

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'

官方微信
官方QQ群
31647020