无法检索从mysql函数返回的值

时间:2010-12-16 08:10:10

标签: sql mysql function

由于使用MYSQL一周,所以必须执行存储过程以及视图但面临检索函数返回值的一些问题。 这是功能:

      CREATE DEFINER=`root`@`localhost` FUNCTION `GetProductIdsStringByEnquiryId`
         (
         InEnquiryId int
         ) RETURNS varchar(4000) CHARSET utf8
      BEGIN
        DECLARE InProductIds varchar(4000);
        DECLARE ProductId varchar(50);
        DECLARE x,y,z INT;
        DECLARE sp1_cursor CURSOR FOR SELECT ProductId FROM enquiryproductid where 
          EnquiryId=InEnquiryId;
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET z = 1;
        SET InProductIds='';
        OPEN sp1_cursor;
        REPEAT
        FETCH sp1_cursor INTO ProductId;
        SETInProductIds=concat(InProductIds,ProductId,',');
        UNTIL (z=1)
        END REPEAT;
        CLOSE sp1_cursor;
       RETURN InProductIds ;
     END

我最初使用的是SQL SERVER 2005,我在他们编写的函数中尝试将其转换为MYSQL, 这是SQL函数代码:

       CREATE function [dbo].[GetBranchIdsStringByEmployeeId]
        (
    @EmployeeId as integer
         )
       returns nvarchar(4000)
      as
      begin
  declare @BranchIds as nvarchar(4000)
  set @BranchIds=''
  if exists(select 1 from dbo.BranchEmployees where EmployeeId=@EmployeeId)
    begin
        select @BranchIds=@BranchIds+cast(BranchId as nvarchar(50))
                      +','   from dbo.BranchEmployees where EmployeeId=@EmployeeId
                       order by BranchId
    end
return @BranchIds
       end

任何人都可以让我知道我在MYSQL中编写的函数是否在ProperManner中?请帮帮我。 谢谢。

1 个答案:

答案 0 :(得分:0)

没有通过它完全阅读,但很少有评论

mysql中的变量赋值使用:=(在set @variable =select @variable:=@variable+1可以使用SELECT group_concat(BranchId) FROM dbo.BranchEmployees WHERE EmployeeId = @EmployeeId

你想

吗?
{{1}}