首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储过程错误未知列mySQL

问存储过程错误未知列mySQL
EN

Stack Overflow用户
提问于 2016-03-24 14:48:18
回答 1查看 714关注 0票数 0

当我试图运行一个存储过程时,我会得到这个错误。

代码语言:javascript
复制
mysql> call get_nearby;

错误1054 (42S22):'where子句‘中未知列'longRadius’

下面是创建存储过程的sql:

代码语言:javascript
复制
CREATE PROCEDURE get_nearby() BEGIN SET @lat = 10; set @long = 12;
SELECT id, 
  @long - radius / abs(cos(radians(@lat)) * 69) as longRadius, 
  (radius/69) as latRadius
FROM area
WHERE longitude between @long + longRadius and @long - longRadius
AND latitude between @lat + latRadius and @long - latRadius;
END

我不知道它为什么不承认指定的列名。目前,我在开始时设置了“lat”和“long”以简化测试。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-24 14:55:56

不能在where子句中使用列别名。您可以将where子句转换为“You”子句,然后让您使用别名。您可以获得更多信息,这里和这里。

来自Mysql文档:

标准SQL不允许引用WHERE子句中的列别名。施加此限制是因为在计算WHERE子句时,可能尚未确定列值。

您还可以在where子句中重新声明计算,或者使用子查询。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36203045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档