【发布时间】:2014-11-10 13:54:43
【问题描述】:
我有以下存储过程:
DELIMITER //
DROP PROCEDURE IF EXISTS active_locations;
CREATE PROCEDURE active_locations()
BEGIN
DECLARE y INT DEFAULT 1;
DECLARE LOC VARCHAR(200);
WHILE y < 6 DO
SELECT CONCAT('SELECT table_sample.LOC', GROUP_CONCAT(y), '_Status'
' FROM table_sample') INTO @LOC;
SET y = y + 1;
PREPARE stmt FROM @LOC;
EXECUTE stmt;
END WHILE;
END//
但是,当我在 Navicat 中调用此过程时,我会为 y 的每次迭代(因此在本例中为 5)获得多个结果集。我尝试将结果插入到临时表中,但只能得到 y = 1 的结果。我不熟悉存储过程,但我认为对于 y 的每个循环,MySQL 正在执行
SELECT table_sample.LOC', GROUP_CONCAT(y), '_Status' ' FROM table_sample 在单独的窗口中。
是否可以将这些列组合到一个表中,但仍按列显示数据?
【问题讨论】:
-
我删除了 SQL Server 标签,因为这是关于 MySQL 的
标签: mysql sql stored-procedures prepared-statement