2013-08-26 67 views
3

我有类似这样的一个存储过程,当我试图挽救它,我得到这个错误:MySQL存储过程中选择列到OUT参数

Undeclared variable: my_column

CREATE PROCEDURE p (OUT column_param VARCHAR(25)) 
BEGIN 
    SELECT my_column INTO coumn_param limit 1; 
END; 

为什么我不能选择列返回?

这里在过程中我的实际查询:

select latitude into lat, longitude into lon 
from cities cc 
inner join countries c on cc.country_id = c.country_id 
inner join regions r on cc.region_id = r.region_id and c.country_id = r.country_id 
left join locations l on cc.city_id = l.city_id 
where 
city = coalesce(cty, city) and 
country = coalesce(ctry, country) and 
region = coalesce(reg, region) 
limit 1; 

回答

4

你的INTO从句语法不正确

假设你的查询本身是正确的,功能齐全,已宣布的变化latlon变量这部分

select latitude into lat, longitude into lon 

SELECT latitude, longitude INTO lat, lon 

这里是SQLFiddle演示

+0

问题解决了,谢谢! –

+0

@RyanNaddy你非常欢迎。祝你好运:) – peterm

+0

我不能这样做与准备好的陈述,我可以吗? –