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

无法检索从mysql函数返回的值,sql,mysql,function,Sql,Mysql,Function,自从我使用MYSQL一周以来,我开始执行存储过程和视图,但在检索函数返回的值时遇到了一些问题。 下面是函数: CREATE DEFINER=`root`@`localhost` FUNCTION `GetProductIdsStringByEnquiryId` ( InEnquiryId int ) RETURNS varchar(4000) CHARSET utf8 BEGIN DECLARE InP

自从我使用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中吗?请帮帮我。
谢谢。

没有通读,但没有什么评论

mysql中的变量分配使用:=在set@Variable中可以使用=,在select@Variable:=@Variable+1中

你是想

SELECT group_concat(BranchId)
FROM dbo.BranchEmployees
WHERE EmployeeId = @EmployeeId

实际上,我正在尝试检索分配给特定员工的多个分支。他们在查询中有问题吗?有没有其他方法获取他们…请允许我know@SUSH检查这是mysql扩展,提供了分配给特定员工的以逗号分隔的BranchID列表,等等。。。不诉诸SPs。另一个完全不同的注意事项是,您正在获取ID列表这一事实表明您将在另一个查询中使用它。这通常不是正确的方法-你可以通过子查询和/或连接得到任何你想要的东西。你说的是对的,我使用这个函数来检索多个分支,每个分支用逗号分隔。