`

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;

 

分享到:
评论

相关推荐

    第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 ...

    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自动备份服务,提供了一种高效且灵活的数据保护方案。在...

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

    在MySQL数据库中,变量是存储数据的重要工具,特别是在存储过程和函数中,它们被用来保存查询或计算的中间结果,甚至最终的输出结果。变量分为两类:系统变量和用户自定义变量。 系统变量是由MySQL系统定义的,它们...

    MySQL存储过程详解

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

    SQL Server200, Access,mysql,Oracle 数据库语法总结

    - **存储过程和函数**:支持自定义逻辑,提升性能。 - **分区表**:在大型数据集上优化查询性能。 4. Oracle: Oracle 是企业级的数据库系统,具有高度复杂性和灵活性: - **PL/SQL**:Oracle 的编程语言,结合...

Global site tag (gtag.js) - Google Analytics