下面对的mysql语句
delimiter //
DECLARE oTemp varchar(4000);
DECLARE oTempChild VARCHAR(4000);
SET oTemp = '';
SET oTempChild = CAST(3 AS CHAR);
WHILE oTempChild IS NOT NULL DO;
SET oTemp = CONCAT(oTemp,',',oTempChild);
SELECT GROUP_CONCAT(id) INTO oTempChild
FROM finishedproductcategory WHERE FIND_IN_SET(parentid,oTempChild) > 0
END WHILE;
select oTemp;//
delimiter ;
执行起来 报错:
Unknown system variable 'oTemp'
上面不是通过declare声明了么?原谅我是MYSQL小白,这个要怎么解决 ?
<p>如上面所见,用户定义变量 需要在begin ---- end中才能生效 如若你希望定义全局(系统)变量 你可以这样</p>
set global var_name = value; //global不能省略
set @@global.var_name = value; //效果同上
<p>DECLARE 要在 BEGIN .. END 块中</p>
DELIMITER //
CREATE PROCEDURE sp_test(var1 INT)
BEGIN
DECLARE start INT unsigned DEFAULT 1;
DECLARE finish INT unsigned DEFAULT 10;
SELECT var1, start, finish;
SELECT * FROM places WHERE place BETWEEN start AND finish;
END; //
DELIMITER ;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。