MySQL存储过程-游标

BEGIN

DECLARE g_id, g_sum INT DEFAULT 0;
DECLARE mark INT DEFAULT 0;      #定义状态变量(写在上边)      #所有的DECLARE 必须写在上面
DECLARE curl CURSOR  FOR  SELECT goods_id FROM goods;   #创建游标
DECLARE CONTINUE HANDLER FOR NOT found SET mark=1; #处理性事件

OPEN curl;      #打开游标, 数据查询

REPEAT
	SET g_id=0;
	FETCH curl INTO g_id;   #读取每行记录,  和定义对应     定义有几列, 就定义几个变量

	IF g_id>0 THEN
	SET g_sum=g_sum+g_id;
	END IF;

	UNTIL mark=1  #如果没行则退出循环
END REPEAT;
CLOSE curl;  # 关闭游标

SELECT g_sum;

END

附表

DROP TABLE IF EXISTS `goods`;
CREATE TABLE `goods` (
  `goods_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `goods_name` varchar(120) NOT NULL DEFAULT '',
  `cat_id` smallint(5) unsigned NOT NULL DEFAULT '0',
  `brand_id` smallint(5) unsigned NOT NULL DEFAULT '0',
  `goods_sn` char(15) NOT NULL DEFAULT '',
  `goods_number` smallint(5) unsigned NOT NULL DEFAULT '0',
  `shop_price` decimal(10,2) unsigned NOT NULL DEFAULT '0.00',
  `market_price` decimal(10,2) unsigned NOT NULL DEFAULT '0.00',
  `click_count` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`goods_id`)
) ENGINE=MyISAM AUTO_INCREMENT=33 DEFAULT CHARSET=utf8;




INSERT INTO `goods` VALUES ('1', 'kd876', '4', '8', 'ecs000000', '1', '1388.00', '1665.60', '9');
INSERT INTO `goods` VALUES ('4', '诺基亚n85原装充电器', '8', '1', 'ecs000004', '17', '58.00', '69.60', '0');
INSERT INTO `goods` VALUES ('3', '诺基亚原装5800耳机', '8', '1', 'ecs000002', '24', '68.00', '81.60', '3');
INSERT INTO `goods` VALUES ('5', '索爱原装m2卡读卡器', '11', '7', 'ecs000005', '8', '20.00', '24.00', '3');
INSERT INTO `goods` VALUES ('6', '胜创kingmax内存卡', '11', '0', 'ecs000006', '15', '42.00', '50.40', '0');
INSERT INTO `goods` VALUES ('7', '诺基亚n85原装立体声耳机hs-82', '8', '1', 'ecs000007', '20', '100.00', '120.00', '0');
INSERT INTO `goods` VALUES ('8', '飞利浦9@9v', '3', '4', 'ecs000008', '1', '399.00', '478.79', '10');
INSERT INTO `goods` VALUES ('9', '诺基亚e66', '3', '1', 'ecs000009', '4', '2298.00', '2757.60', '20');
INSERT INTO `goods` VALUES ('10', '索爱c702c', '3', '7', 'ecs000010', '7', '1328.00', '1593.60', '11');
INSERT INTO `goods` VALUES ('11', '索爱c702c', '3', '7', 'ecs000011', '1', '1300.00', '0.00', '0');
INSERT INTO `goods` VALUES ('12', '摩托罗拉a810', '3', '2', 'ecs000012', '8', '983.00', '1179.60', '13');
INSERT INTO `goods` VALUES ('13', '诺基亚5320 xpressmusic', '3', '1', 'ecs000013', '8', '1311.00', '1573.20', '13');
INSERT INTO `goods` VALUES ('14', '诺基亚5800xm', '4', '1', 'ecs000014', '1', '2625.00', '3150.00', '6');
INSERT INTO `goods` VALUES ('15', '摩托罗拉a810', '3', '2', 'ecs000015', '3', '788.00', '945.60', '8');
INSERT INTO `goods` VALUES ('16', '恒基伟业g101', '2', '11', 'ecs000016', '0', '823.33', '988.00', '3');
INSERT INTO `goods` VALUES ('17', '夏新n7', '3', '5', 'ecs000017', '1', '2300.00', '2760.00', '2');
INSERT INTO `goods` VALUES ('18', '夏新t5', '4', '5', 'ecs000018', '1', '2878.00', '3453.60', '0');
INSERT INTO `goods` VALUES ('19', '三星sgh-f258', '3', '6', 'ecs000019', '12', '858.00', '1029.60', '7');
INSERT INTO `goods` VALUES ('20', '三星bc01', '3', '6', 'ecs000020', '12', '280.00', '336.00', '14');
INSERT INTO `goods` VALUES ('21', '金立 a30', '3', '10', 'ecs000021', '40', '2000.00', '2400.00', '4');
INSERT INTO `goods` VALUES ('22', '多普达touch hd', '3', '3', 'ecs000022', '1', '5999.00', '7198.80', '16');
INSERT INTO `goods` VALUES ('23', '诺基亚n96', '5', '1', 'ecs000023', '8', '3700.00', '4440.00', '17');
INSERT INTO `goods` VALUES ('24', 'p806', '3', '9', 'ecs000024', '100', '2000.00', '2400.00', '35');
INSERT INTO `goods` VALUES ('25', '小灵通/固话50元充值卡', '13', '0', 'ecs000025', '2', '48.00', '57.59', '0');
INSERT INTO `goods` VALUES ('26', '小灵通/固话20元充值卡', '13', '0', 'ecs000026', '2', '19.00', '22.80', '0');
INSERT INTO `goods` VALUES ('27', '联通100元充值卡', '15', '0', 'ecs000027', '2', '95.00', '100.00', '0');
INSERT INTO `goods` VALUES ('28', '联通50元充值卡', '15', '0', 'ecs000028', '0', '45.00', '50.00', '0');
INSERT INTO `goods` VALUES ('29', '移动100元充值卡', '14', '0', 'ecs000029', '0', '90.00', '0.00', '0');
INSERT INTO `goods` VALUES ('30', '移动20元充值卡', '14', '0', 'ecs000030', '9', '18.00', '21.00', '1');
INSERT INTO `goods` VALUES ('31', '摩托罗拉e8 ', '3', '2', 'ecs000031', '1', '1337.00', '1604.39', '5');
INSERT INTO `goods` VALUES ('32', '诺基亚n85', '3', '1', 'ecs000032', '4', '3010.00', '3612.00', '9');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值