DECLARE LENGTH INT(20) DEFAULT 0;
DECLARE DIM_0 VARCHAR(255);
DECLARE DIM_1 VARCHAR(255);
DECLARE DIM_2 VARCHAR(255);
DECLARE DIM_3 VARCHAR(255);
DECLARE DIM_4 VARCHAR(255);
SET LENGTH = F_DIM_ITEM_NUM(DIM_I);
DECLARE i int(20) DEFAULT 0;
WHILE i < LENGTH
DO
SET concat('DIM_',i) = F_DIM_ITEM_GET(DIM_I, i + 1);
SET i = i + 1;
END WHILE;
似乎函数F_DIM_ITEM_GET的返回没有分配给var DIM_i, 或者还有其他错误。我怎样才能使它工作?任何建议将不胜感激!
答案 0 :(得分:1)
<a target="_blank" href="http://your_url_here.html">Link</a>
不是变量,而是字符串文字(常量),您无法为其赋值。您可以尝试使用dynamic sql through prepared statements创建要使用字符串连接动态执行的sql语句,然后执行它。
动态创建sql(显然,首先声明DSQL变量),执行它并释放它:
concat('DIM_',i)
您还需要在使用之前声明DSQL = 'SET ' + concat('DIM_',i) + '= F_DIM_ITEM_GET(DIM_I, i + 1)';
PREPARE stmt FROM DSQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
变量。