由于使用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中?请帮帮我。 谢谢。
答案 0 :(得分:0)
没有通过它完全阅读,但很少有评论
mysql中的变量赋值使用:=
(在set @variable
=
中select @variable:=@variable+1
可以使用SELECT group_concat(BranchId)
FROM dbo.BranchEmployees
WHERE EmployeeId = @EmployeeId
你想
吗?{{1}}