您的位置:首页 > 数据库 > MySQL

MySQL 存储过程 删除重复数据 采用limit

2014-12-17 11:07 357 查看
CREATE PROCEDURE updateBdAreaData()

BEGIN

declare stopFlag int;

DECLARE dataid varchar(100);

declare repeatCount int;

declare i int; -- 循环变量

-- 申明游标

declare dataCursor cursor for

select fid,count(1) from t_bd_newarea group by fid having count(1) > 1;

-- 申明跳出循环

DECLARE CONTINUE HANDLER FOR NOT FOUND set stopFlag=1;

OPEN dataCursor;

REPEAT

FETCH dataCursor INTO dataid,repeatCount;

BEGIN

set i =repeatCount-1;

if i = 2 THEN

delete from t_bd_newarea where fid = dataid limit 2;

end if;

END;

UNTIL stopFlag = 1

END REPEAT;

CLOSE dataCursor;

END;

call updateBdAreaData(); -- 调用存储过程

COMMIT; --提交
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: