Mysql高级之游标

原文:Mysql高级之游标

什么是游标?select 语句也许一次性会取出来n条语句,那么游标便可以一次取出来select中的一条记录。每取出来一条,便向下移动一次!可以实现很复杂逻辑!

上面还有有一个问题,会多出来一条记录,怎样搞定?

原因在于continue,而不是选择exit;

如果用continue不行吗?是可以的,没发现上面带有逻辑上有点小问题吗?这样解决:调节一下顺序

可见有n多种方法,不就是语法问题吗!

时间: 2024-10-23 09:09:17

Mysql高级之游标的相关文章

mysql 存储过程中游标临时表问题

问题描述 mysql 存储过程中游标临时表问题 DELIMITER $$ USE laolao$$ DROP PROCEDURE IF EXISTS parent_sport_sort1$$ CREATE DEFINER=root@% PROCEDURE parent_sport_sort1(IN jidb VARCHAR(64),IN uname VARCHAR(64),IN starttime VARCHAR(64),IN endtime VARCHAR(64), IN startmonth

【MySql】MySql存储,游标,循环的简单使用

MySql存储,游标,循环 CREATE PROCEDURE `copy_group`(IN v_sourcegroupid int,IN v_destgroupid int,IN v_projectid int) BEGIN       --声明变量       declare v_oldtestcaseid int;       declare v_testcaseid int;       declare v_stepid int;       declare v_id int;    

mysql存储过程之游标遍历数据表

原文:mysql存储过程之游标遍历数据表 今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕迹. 1 BEGIN 2 DECLARE Done INT DEFAULT 0; 3 4 DECLARE CurrentLingQi INT; 5 6 DECLARE ShizuName VARCHAR(30); 7 /* 声明游标 */ 8 DECLARE rs CURSOR FOR SELECT

Mysql高级之触发器

原文:Mysql高级之触发器 触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete). 看以下事件: 完成下单与减少库存的逻辑 Insert into o (gid,num) values (2,3);  // 插入语句 Update g set goods_num = goods_num - 3 where id = 2;// 更新过程   这两个逻辑可以看成一个整体,或者说, insert ---

mysql 存储过程中游标与多游标实例

例  代码如下 复制代码 DELIMITER $$ DROP PROCEDURE IF EXISTS getUserInfo $$ CREATE PROCEDURE getUserInfo(in date_day datetime) -- -- 实例 -- MYSQL存储过程名为:getUserInfo -- 参数为:date_day日期格式:2008-03-08 --     BEGIN declare _userName varchar(12); -- 用户名 declare _chines

Mysql高级之存储过程

原文:Mysql高级之存储过程 概念类似于函数,就是把一段代码封装起来,当要执行这一段代码的时候,可以通过调用该存储过程来实现.在封装的语句体里面,可以用if/else, case,while等控制结构.可以进行sql编程. 在mysql中,存储过程和函数的区别, 一个是名称不同, 二个就是存储过程没有返回值. 如果想获得返回值怎么办那?通过out性变量就OK! 查看现有的存储过程: Show procedure status   删除存储过程 Drop procedure 存储过程的名字  

MySQL高级查询之与Group By集合使用介绍_Mysql

1 GROUP_CONCAT mysql> SELECT student_name,    ->     GROUP_CONCAT(test_score)    ->     FROM student    ->     GROUP BY student_name; Or: mysql> SELECT student_name,    ->     GROUP_CONCAT(DISTINCT test_score    ->               ORDER

MYSQL高级特性 -- 事务处理

下面以两个银行账户之间的转账为例子进行演示. 要使用MySQL中的事务处理,首先需要创建使用事务表类型(如BDB = Berkeley DB或InnoDB)的表. CREATE TABLE account ( account_id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, balance DOUBLE ) TYPE = InnoDB; 要在事务表上使用事务处理,必须要首先关闭自动提交: SET AUTOCOMMIT = 0; 事务处

MySQL高级特性之集合函数

到现在为止,你只学习了如何根据特定的条件从表中取出一条或多条记录.但是,假如你想对一个表中的记录进行数据统计.例如,如果你想统计存储在表中的一次民意测验的投票结果.或者你想知道一个访问者在你的站点上平均花费了多少时间.要对表中的任何类型的数据进行统计,都需要使用集合函数.你可以统计记录数目,平均值,最小值,最大值,或者求和.当你使用一个集合函数时,它只返回一个数,该数值代表这几个统计值之一. 这些函数的最大特点就是经常和GROUP BY语句配合使用,需要注意的是集合函数不能和非分组的列混合使用.