mysql语法问题

葬天尘 发布于 2018/11/13 12:23
阅读 81
收藏 0

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

加载中
1
专写垃圾代码
专写垃圾代码

如上面所见,用户定义变量 需要在begin ---- end中才能生效 如若你希望定义全局(系统)变量 你可以这样

set global var_name = value; //global不能省略
set @@global.var_name = value; //效果同上

 

0
沙枣
沙枣

DECLARE 要在 BEGIN .. END 块中

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 ;

 

返回顶部
顶部