具有自定义“类似表”输出的mysql过程

时间:2010-11-02 16:38:13

标签: mysql database stored-procedures

这可能是也可能不是一个简单的问题。

我正在寻找一种不从表中选择任何东西的方法,但返回一组类似于表的数据。

基本上我有一个循环遍历表并将数据存储到变量中的过程,然后按行显示:

SELECT @args as parents;

有没有更好的方法来设置表数据结构并返回整个事物?现在我正在返回一个带有多个(需要解析)数据的变量。

编辑:

尝试更好地解释:

我要做的是循环并执行一系列select语句,有没有办法将这些数据“连接”成一个大的数据表结构,然后返回该表?

3 个答案:

答案 0 :(得分:1)

使用临时表

   DROP TABLE IF EXISTS tmp;
   CREATE TABLE tmp( --fields-- );   
   WHILE ( --condition-- ) DO
       INSERT INTO tmp VALUES ( --fields-- );
       SELECT --Statement--
   END WHILE;


--do stuff--

并清理

DROP TABLE tmp

答案 1 :(得分:0)

我对mySQL没有好感,但你应该能够使用一个函数来返回一个表。我在另一个问题上找到了以下内容,这可能会有所帮助:

CREATE FUNCTION getdepartments() 
    RETURNS @departments TABLE( 
        DNAME VARCHAR(25), 
        DEPTID VARCHAR(10), 
        DBONUS DECIMAL(7,2)) 
AS 
BEGIN 
    INSERT @departments SELECT * FROM DEPARTMENT; 
    RETURN 
END 

我已经在SQL Server中完成了这项工作,你可以做一些有趣的事情,比如递归函数,不断向输出表中添加记录等。

答案 2 :(得分:0)

也许您可以返回此处所述的记录集http://forums.mysql.com/read.php?102,50520,50626#msg-50626。希望这会有所帮助。