开发者社区> 问答> 正文

mysql语法问题?报错

下面对的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小白,这个要怎么解决 ?

展开
收起
爱吃鱼的程序员 2020-06-06 10:47:40 430 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <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 ;
    

     

    2020-06-06 10:47:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像