`

mysql游标和自定义函数实例

阅读更多
DELIMITER //
DROP FUNCTION IF EXISTS getTopicTypeNames//  
CREATE FUNCTION getTopicTypeNames(delim VARCHAR(20),tid INT) RETURNS VARCHAR(255)
BEGIN
    DECLARE done INT DEFAULT 0;
		DECLARE cnt INT DEFAULT 0;
    DECLARE name_temp VARCHAR(255) DEFAULT '';
    DECLARE result VARCHAR(255) DEFAULT '';

    DECLARE typeNamesCursor CURSOR FOR SELECT tt.name FROM pcbest_topic_type tt,pcbest_topic_type_relation ttr WHERE ttr.topicTypeId = tt.typeId AND tt.flag=1 AND ttr.topicId=tid ORDER BY tt.level ASC;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

    OPEN typeNamesCursor;/*打开游标*/
   
		REPEAT
        FETCH typeNamesCursor INTO name_temp;
        IF NOT done THEN
		IF cnt=0 THEN
			SET result=name_temp;
		ELSE
			SET result=CONCAT(result,delim,name_temp);/*拼接字名称*/
		END IF;
		SET cnt=cnt+1;
        END IF;

    UNTIL done END REPEAT;

    CLOSE typeNamesCursor;/*关闭游标*/

    RETURN result;
END//
DELIMITER ;

/* 调用 */
select getTopicTypeNames(';',t.topicId) from pcbest_topic t where t.topicId<2000;

 

分享到:
评论

相关推荐

    mysql存储过程之返回多个值的方法示例

    本文实例讲述了mysql存储过程之返回多个值的方法。分享给大家供大家参考,具体如下: mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。咱们先来看一个orders表它的...

    第10章 存储过程和函数PPT

    创建自定义函数使用`CREATE FUNCTION`语句,同样需要指定参数和返回类型,以及函数体内的SQL逻辑。函数在SQL查询中可以直接嵌入,使得查询更加灵活和强大。 在第10章的学习中,你将了解到如何定义、调用和管理存储...

    MySQL中文参考手册HTML

    7. **存储过程与函数**:介绍如何创建、调用和管理存储过程及自定义函数,以实现更复杂的业务逻辑。 8. **触发器与事件**:讲解触发器的定义和应用,以及如何设置定时执行的事件。 9. **视图与游标**:说明视图的...

    mysql类 一个非常好用的mysql类

    在 PHP 中,原生的 MySQL 函数如 `mysql_connect()` 和 `mysql_query()` 已经在 PHP 7.0 中被废弃,取而代之的是更安全、更现代的 `mysqli` 扩展和 PDO(PHP Data Objects)。然而,自定义的 MySQL 类通常会提供更...

    PHP和MySQL Web开发第4版pdf以及源码

    13.5.3 游标和控制结构 13.6 进一步学习 13.7 下一章 第三篇 电子商务与安全性 第14章 运营一个电子商务网站 14.1 我们要实现什么目标 14.2 考虑电子商务网站的类型 14.2.1 使用在线说明书公布信息 14.2.2 ...

    第16章_变量、流程控制与游标1

    本篇文章将深入探讨MySQL中的变量概念、流程控制及游标的相关知识,以期对数据库开发和管理的实际操作提供有价值的见解和帮助。 首先,我们必须明确变量在MySQL数据库中的地位。变量是数据库中用于存储数据的容器,...

    MySql 列转行实例

    在MySQL中,我们可以创建自定义的存储过程来执行复杂的数据处理任务,比如行列转换。 对于"列转行",一个常见的应用场景是处理交叉表(也称作透视表)。交叉表允许我们将数据按照多个维度进行展示,比如在一个销售...

    PHP和MySQL WEB开发(第4版)

    13.5.3 游标和控制结构 13.6 进一步学习 13.7 下一章 第三篇 电子商务与安全性 第14章 运营一个电子商务网站 14.1 我们要实现什么目标 14.2 考虑电子商务网站的类型 14.2.1 使用在线说明书公布信息 14.2.2 接收产品...

    mysql中文手册

    8. **存储过程和函数**:定义、调用存储过程和函数,以及自定义函数的编写。 9. **触发器**:触发器的概念、创建和使用,以及它们在业务逻辑中的应用。 10. **权限和安全**:用户账户管理,包括GRANT和REVOKE命令...

    MySQL必知必会1

    本书的结构清晰,内容精炼,通过实例和实践指导帮助读者快速提升MySQL技能。对于软件开发人员和数据库管理员来说,这是一本非常实用的参考书,能够帮助他们在实际工作中有效地运用MySQL。 由于本书的目的是让读者...

    MYSQL实战,小白找工作必备

    了解自定义函数的编写,包括用户定义变量和游标的应用。 7. **视图**:学习如何创建和使用视图,视图作为虚拟表,简化了复杂的查询并提供了数据的安全隔离。 8. **备份与恢复**:理解MySQL的备份策略,包括全量...

    pdo封装mysql类

    - `__construct()` 构造函数:初始化类时创建PDO实例,通常会传递数据库服务器地址、用户名、密码和数据库名称作为参数。 - `connect()` 方法:建立与MySQL服务器的连接。 - `disconnect()` 方法:断开与数据库的...

    PHP和MySQL Web开发第4版

    13.5.3 游标和控制结构 13.6 进一步学习 13.7 下一章 第三篇 电子商务与安全性 第14章 运营一个电子商务网站 14.1 我们要实现什么目标 14.2 考虑电子商务网站的类型 14.2.1 使用在线说明书公布信息 14.2.2 ...

    python脚本windows服务器自动备份mysql

    - 多数据库支持:如果服务器上有多个MySQL实例,脚本应能灵活处理多个数据库的备份。 总的来说,通过Python脚本和nssm,我们可以实现Windows服务器上的MySQL自动备份服务,提供了一种高效且灵活的数据保护方案。在...

    MySQL存储过程详解

    - **函数调用:** 存储过程中可以调用其他存储过程或自定义函数。 #### 六、示例 接下来,我们将通过一个更复杂的示例来展示存储过程的使用方法。假设有一个需求是计算员工的奖金,基于他们的职位等级和工作表现。...

Global site tag (gtag.js) - Google Analytics