SELECT count(1) INTO v_count FROM T_invvalbalaccount;
IF v_count>0 THEN --处理先进先出,后进先出的货品
--处理了部分业务
DELETE FROM T_invvalbalaccount WHERE T_QuanAmount=0; SELECT count(1) INTO v_count FROM T_invvalbalaccount WHERE T_invvalbalaccount.OutType='1';
--v_count=0 时怎么让WHILE退出呢
END WHILE ;
如上代码,我用WHILE循环处理,怎么保证v_count=0时退出,我做了发现没退出。
IF v_count>0 THEN --处理先进先出,后进先出的货品
--处理了部分业务
DELETE FROM T_invvalbalaccount WHERE T_QuanAmount=0; SELECT count(1) INTO v_count FROM T_invvalbalaccount WHERE T_invvalbalaccount.OutType='1';
--v_count=0 时怎么让WHILE退出呢
END WHILE ;
如上代码,我用WHILE循环处理,怎么保证v_count=0时退出,我做了发现没退出。
DELIMITER $$
drop procedure if exists rr$$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE `test`.`rr`(dd varchar(10))
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
declare v1 integer;
set v1=10;
zz:WHILE v1 > 0 DO
SET v1 = v1 - 1;
if v1=2 then
begin
select 'dddd';
leave zz;
end;
end if;
END WHILE; END$$DELIMITER ;
SELECT count(1) INTO v_count FROM T_invvalbalaccount
WHILE v_count>0 do
--处理业务,删除不合理的记录
SELECT count(1) INTO v_count FROM T_invvalbalaccount ;
END WHILE ;这样处理不对吗?
WHILE @v_count>0 do
--处理业务,删除不合理的记录
SELECT count(1) INTO @v_count FROM T_invvalbalaccount ;
END WHILE
DELIMITER $$DROP PROCEDURE IF EXISTS `test`.`DD1`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `DD1`(dd varchar(10))
BEGIN
SELECT COUNT(*) INTO @DD FROM ZZ.JZG1 WHERE BH=DD;
IF @DD>1 THEN
BEGIN
SELECT 'DFFFF';
END;
ELSE
BEGIN
SELECT 'AAAA';
END;
END IF; END$$DELIMITER ;