`
java新手上路
  • 浏览: 82431 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类

mysql 变量赋值要注意的

    博客分类:
  • db
阅读更多
今天由于项目需要,需要写个存储过程,这个可是一年才难得写一次。于是没办法,重新捡起来。开始写
写到后来。。
CREATE FUNCTION `getChildLstnotSun`(department_id int) 
RETURNS varchar(1000) 
 BEGIN 
   DECLARE sTemp VARCHAR(1000); 
   DECLARE sTempChd int; 
   declare fetchSeqOk boolean;
   declare cur1 CURSOR FOR SELECT departmentId FROM sys_department_info where fatherDepartmentId=department_id;
	 DECLARE CONTINUE HANDLER FOR NOT FOUND SET fetchSeqOk=true;  
   SET fetchSeqOk=false;
   OPEN cur1;
	 fetchSeqLoop:Loop
			FETCH cur1 INTO sTempChd;
			if fetchSeqOk then  
				leave fetchSeqLoop;  
			else    
				SET sTemp := concat(sTemp,',',sTempChd); 
 			end if; 
 	 end loop;
 	 CLOSE cur1;
	RETURN sTemp; 
 END 

需要有个类似于for循环字符串拼接的代码

OPEN cur1;
    fetchSeqLoop:Loop
        FETCH cur1 INTO sTempChd;
        if fetchSeqOk then  
            leave fetchSeqLoop;  
        else    
            SET sTemp := concat(sTemp,',',sTempChd); 
        end if; 
     end loop;
CLOSE cur1;


结果调试了半天,这个sTemp变量就是不出来.

最后开始奇思妙想。
结果在 SET fetchSeqOk=false;后面加上了 set sTemp='';
这时候才出来了。尼玛,原来这个是需要初始化一下的





顺便记一下,mysql的group_concat函数最好只用在字符串字段上
分享到:
评论

相关推荐

    mysql 存储过程中变量的定义与赋值操作

    一、变量的定义 mysql中变量定义用declare来定义...二、mysql存储过程变量赋值 变量的赋值可直接赋值与查询赋值来操作,直接赋值可以用set来操作,可以是常量或表达式如果下 代码如下: set var_name= [,var_name expr]

    Qt从数据库中提取数据给变量赋值

    Qt中执行sql语句,当需要变量存取从数据库中获取的值,首先取出一行数据,然后按列将数据分别赋给变量

    mysql存储过程之创建(CREATE PROCEDURE)和调用(CALL)及变量创建(DECLARE)和赋值(SET)操作方法

    为变量赋值通常使用`SET`语句,例如: ```sql DECLARE total_count INT DEFAULT 0; SET total_count = 10; ``` 这里将`total_count`的值设为了10。此外,`SELECT INTO`也可以用来将查询结果赋值给变量: ```sql ...

    计算机后端-PHP视频教程. php与mysql加强- php加强6-变量赋值.wmv

    计算机后端-PHP视频教程. php与mysql加强- php加强6-变量赋值.wmv

    MySql变量替换语句生成器

    对于生产环境上的mysql日志操作,常规是要用变量替换问号,为了解决机械化的赋值,就用Java写了一个工具,单纯的通过流操作把问号替换成变量

    mysql变量用法实例分析【系统变量、用户变量】

    本文实例讲述了mysql变量用法。分享给大家供大家参考,具体如下: 本文内容: 系统变量 用户变量 局部变量 首发日期:2018-04-18 系统变量: 系统变量就是系统已经提前定义好了的变量 系统变量一般都有其特殊...

    MySQL变量原理及应用实例

    在mysql文档中,mysql变量可分为两大类,即系统变量和用户变量。 但根据实际应用又被细化为四种类型,即局部变量、用户变量、会话变量和全局变量。 一、局部变量 mysql局部变量,只能用在begin/end语句块中,比如...

    理解MySQL变量和条件

    - 在存储过程中,可以使用`SET`语句为局部变量赋值: ```sql SET pname = '新值'; ``` - 通过`SELECT...INTO`语句,可以将查询结果直接赋值给变量,甚至可以直接赋值给存储过程的`OUT`参数: ```sql SELECT ...

    6.60SP1组态王读取mysql数据方法.zip

    3. **创建数据库变量**:在组态王的变量管理器中,创建新的数据库变量,选择刚才配置的数据源,指定要读取的数据库表和字段。 4. **编写脚本或程序**:组态王支持脚本语言,你可以编写运行时的脚本来执行SQL查询...

    MySQL 声明变量及存储过程分析

    声明变量 设置全局变量 ...要注意一点就是变量名不能和字段名一致 存储过程 存储过程将一段通用的操作封装在一起 这样再不同平台都可以公用了 储存过程没有返回值,而且不能sql语句调用,只能是call调用,

    Oracle到mysql的迁移步骤及各种注意事项_数据库.docx

    3. 变量定义:在 MySQL 中,需要在每句前面加 DECLARE 给变量赋值,例如 SET string:='asdas';。 4. 异常处理:Oracle 的异常处理语句 EXCEPTION WHEN OTHERS THEN … 对应 MySQL 的 DECLARE {EXIT|CONTINUE} ...

    MySQL进阶SELECT语法篇

    其次,你也能利用它给变量赋值,而在PHP中,运用SELECT语句的这种功能,你就可以自由地运用MySQL的函数为PHP程序进行各种运算,并赋值给变量。在很多的时候,你会发现MySQL拥有许多比PHP更为功能强大的函数。

Global site tag (gtag.js) - Google Analytics