我想在用戶定義的函數內動態地創建一個變量名,但它似乎不起作用。有沒有辦法做到這一點或通過使用數組變量?MySQL構建變量名稱?
我有一個由7個字符組成的字符串,代表了一週中的幾天(1234567或1_3_5_7等)。我想要評估每天選擇一週的頻率(從0到7)。我想,這將是最容易使用的循環要經過所有的7個位置,但我得到一個錯誤信息說
[錯誤] 1193 - 未知的系統變量「CONCAT」
任何提示我如何才能做到這一點?這是我的代碼:
DELIMITER $$
DROP FUNCTION IF EXISTS fn_freq$$
CREATE FUNCTION fn_freq(days INT) RETURNS INT
BEGIN
DECLARE D1 VARCHAR(1);
DECLARE D2 VARCHAR(1);
DECLARE D3 VARCHAR(1);
DECLARE D4 VARCHAR(1);
DECLARE D5 VARCHAR(1);
DECLARE D6 VARCHAR(1);
DECLARE D7 VARCHAR(1);
DECLARE x INT;
DECLARE fn_freq INT;
SET x =1;
SET fn_freq = 0;
WHILE x < 8 DO
SET CONCAT('D',x) = MID(days, x, 1);
IF CONCAT('D',x) = '_' THEN
ELSE
SET fn_freq = fn_freq + 1;
SET x = x + 1;
END IF;
SET x = x + 1;
END WHILE;
RETURN fn_freq;
END$$
DELIMITER ;