如何在函数查询中设置返回值

时间:2013-02-22 15:00:01

标签: mysql

这里我使用mysql函数进行货币转换。请在下面,

CREATE  FUNCTION anycurrency_inr(book_id INT,pub_id INT) RETURNS DOUBLE
DETERMINISTIC
BEGIN
DECLARE publisher_currency VARCHAR(60);
DECLARE org_amount DOUBLE;
DECLARE inr_amount DOUBLE;
DECLARE convert_base DOUBLE;
DECLARE convert_current DOUBLE;
 select publishers.currency into publisher_currency from publishers,books where    publishers.user_id=pub_id and books.id=book_id;
select publisher_currency into org_amount from books where user_id=pub_id;
IF (publisher_currency ='inr_price') THEN
set inr_amount=org_amount;
ELSE
select base_value into convert_base from currencys where base_currency='publisher_currency';
select current_value into convert_current from currencys where base_currency='publisher_currency';
set inr_amount=org_amount * (convert_current/convert_base);
RETURN inr_amount;
END IF;
END

以上发布者表将货币值返回到publisher_currency,它可能是(inr_price或doller_price或pound_price或euro_price),我的疑问是如何在另一个查询中传递返回值。这里我在currencys表中传递publisher_currency值。它显示错误,因为Result包含多行。

1 个答案:

答案 0 :(得分:0)

抛出此错误,因为您的请求返回了多行:

select base_value into convert_base from currencys where base_currency='publisher_currency';

并且无法在convert_base变量

中插入多个值