MSSQL下面的语句能成立.create function insert_num() returns @table table(num_value int) 
AS 
BEGIN 
declare @num int
set @num = 1
while @num < 10
begin
insert @table values(@num)
set @num = @num + 1
end
insert @table values(@num)
return
END
goselect * from insert_num()
我看了看MYSQL的函数,貌似只能在函数本体返回一个值.那么MYSQL就不支持类似MSSQL的写法咯?

解决方案 »

  1.   

    MYSQL的FUNCTION无法返回一个记录集或数组。
    一般是在FUNCTION中生成一个临时表,然后调的过程再去访问这个临时表中的记录。
      

  2.   

    +1如果该函数或过程需要被同时调用的话,我一般习惯多传一个ID进函数,然后根据这个ID生成相关临时表的表名,或者在相同表里面作为分组依据。
      

  3.   


    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/02/4142971.aspx
    MySQL中进行树状所有子节点的查询