set var_name= [,var_name expr]...给上面的last变量赋值方法如下 set last = date_sub( current_date(),interval 1 month);下面看通过查询给变量赋值,要求查询返回的结果必须为一行,具体操作如下 select col into var_name[,...] table_expr我们来通过查询给v_pay赋值。 create function get _cost(p_custid int,p_eff datetime) return decimal(5,2) deterministic reads sql data begin declare v_pay decimail(5,2); select ifnull( sum(pay.amount),0) into vpay from payment where pay.payd<=p_eff and pay.custid=pid reutrn v_rent + v_over - v_pay; end $$