错误代码:1242。子查询返回超过1行

时间:2017-01-27 14:59:14

标签: mysql

我在下面的函数中遇到以下错误:

  

错误代码:1242。子查询返回的行数超过1行

In在这里工作不起作用。我该怎么办?

delimiter $

create function pricesTax()returns decimal(8,2)
begin
    declare y decimal(8,2);
    declare z decimal(8,2);
    declare M decimal(8,2);

    set y = (select PR(Prices) from Products);
    set z = (select Prices from Products);
    set M = y*z;

    return M;
end $

delimiter ;

1 个答案:

答案 0 :(得分:2)

您的一个查询会返回多行,因此您应该limit结果:

set y = (select PR(Prices) from Products limit 1);

set z = (select Prices from Products limit 1);

或更可能的是,以适当的方式重新考虑你的触发器。