create function fn_getPar(@sonid int) returns @temptab table(id int,level int) as begin declare @level int set @level=1 insert into @temptab(id,level) values(@sonId,@level) while @@rowcount>0 begin SET @Level=@Level+1 INSERT @temptab SELECT a.parentid,@Level FROM organise a,@temptab b WHERE a.Id=b.id AND b.Level=@Level-1 end return end goselect id from dbo.fn_getPar(要查找的id) where id<>'要查找的id'
这个能在mysql在运行么? 我把我的表替换进去 结果是 Error Code : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(@sonid int) returns @temptab table(id int,level int) as beg (0 ms taken)
http://community.csdn.net/Expert/topic/5220/5220860.xml?temp=.2868769
returns @temptab table(id int,level int)
as
begin
declare @level int
set @level=1
insert into @temptab(id,level) values(@sonId,@level)
while @@rowcount>0
begin
SET @Level=@Level+1
INSERT @temptab SELECT a.parentid,@Level
FROM organise a,@temptab b
WHERE a.Id=b.id
AND b.Level=@Level-1
end
return
end
goselect id from dbo.fn_getPar(要查找的id) where id<>'要查找的id'
我把我的表替换进去 结果是
Error Code : 1064
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(@sonid int)
returns @temptab table(id int,level int)
as
beg
(0 ms taken)