这可能是也可能不是一个简单的问题。
我正在寻找一种不从表中选择任何东西的方法,但返回一组类似于表的数据。
基本上我有一个循环遍历表并将数据存储到变量中的过程,然后按行显示:
SELECT @args as parents;
有没有更好的方法来设置表数据结构并返回整个事物?现在我正在返回一个带有多个(需要解析)数据的变量。
编辑:
尝试更好地解释:
我要做的是循环并执行一系列select语句,有没有办法将这些数据“连接”成一个大的数据表结构,然后返回该表?
答案 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。希望这会有所帮助。