在mysql中查询存储过程错误地返回null

时间:2011-12-19 20:28:09

标签: mysql stored-procedures select

我正在尝试使用SELECT-INTO语句设置变量列表,但是当我找到一行时,我遇到了返回null数据的查询的一些问题。真正奇怪的部分是,如果我选择某个列它可以工作,但它不适用于任何其他列。为了一次隔离一个问题,我简化了查询。这是我想要运行的:

SELECT Product_1 INTO @Product_1
FROM STG_XREF_ELS_PRODUCTS
WHERE MarketName = @ThisMarketName
LIMIT 1;

此声明不起作用,但如果我输入相同的确切查询但选择其他字段,则可以正常工作...

SELECT MarketName INTO @Product_1
FROM STG_XREF_ELS_PRODUCTS
WHERE MarketName = @ThisMarketName
LIMIT 1;

值得注意的是,我已经测试过以确保这不是Product_1实际为空的情况,我的外部参照表中没有Product_1为null的实例。另外,如果我只是从表中选择限制为1并且没有where子句的Product_1,我仍然会得到一个空结果。

我也尝试过使用:

set @Product1 = (select Product_1 
                 FROM STG_XREF_ELS_PRODUCTS 
                 WHERE MarketName = @ThisMarketName);

提前感谢您的帮助!

P.S。

1 个答案:

答案 0 :(得分:0)

尝试更改变量的名称:

选择Product_1 INTO @Product_variable 来自STG_XREF_ELS_PRODUCTS 在哪里MarketName = @ThisMarketName 限制1;