0
我需要select column
從temp
表中存儲過程cursor
。MySQL:光標從臨時表中選擇
這裏是我的嘗試下面的腳本:
嘗試:
DELIMITER $$
CREATE PROCEDURE `sptest2`(IN nm VARCHAR(50),IN sub VARCHAR(50))
BEGIN
DECLARE dp char(50);
DECLARE colmn_list varchar(100);
SET @q = CONCAT('CREATE TEMPORARY TABLE IF NOT EXISTS tem AS
(SELECT DISTINCT ', nm ,' AS Col FROM table1)');
PREPARE stmt FROM @q;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
DECLARE cursor_n CURSOR for select col from tem;
注意:這使我的錯誤。因爲我們在某些操作後不能declare cursor
。我們需要在BEGIN
之後聲明它。
那麼這是什麼解決方案?
我建議你不要使用遊標。您可以通過子查詢實現相同的功能 – 2014-10-10 11:03:19
@RonakShah,對不起!但我是MySQL的新手,你能否詳細說明一下? – Meem 2014-10-10 11:06:05
沒問題Meem,我認爲你想用遊標來逐行迭代並做一些處理。它會比你使用子查詢或加入緩慢 – 2014-10-10 11:12:46