mysql剔除冗余数据

WBOY
发布: 2016-06-07 16:27:09
原创
1909 人浏览过

mysql删除冗余数据 -- -- 1. 查询冗余数据SELECT t.id FROM t_lifeservice_orders t WHERE t.orderStatus = 2 GROUP BY t.channelCode, t.orderNum, t.orderStatus HAVING COUNT(t.orderStatus) 1;-- -- 2. 定义删除冗余数据存储过程DROP PROCEDURE IF EXISTS

mysql删除冗余数据
-- -- 1. 查询冗余数据
SELECT t.id FROM t_lifeservice_orders t WHERE t.orderStatus = 2 GROUP BY t.channelCode, t.orderNum, t.orderStatus HAVING COUNT(t.orderStatus) > 1;

-- -- 2. 定义删除冗余数据存储过程
DROP PROCEDURE IF EXISTS proc_delete_redundance; 
DELIMITER $ 
CREATE PROCEDURE proc_delete_redundance()  
BEGIN  
    DECLARE cid INT;
    DECLARE done BOOLEAN DEFAULT FALSE;  
    DECLARE cur CURSOR FOR SELECT t.id FROM t_lifeservice_orders t WHERE t.orderStatus = 2 GROUP BY t.channelCode, t.orderNum, t.orderStatus HAVING COUNT(t.orderStatus) > 1;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;  
    -- declare continue handler FOR SQLSTATE '02000' SET done = 1;    
      
    OPEN cur;  
    FETCH NEXT FROM cur INTO cid;
    flag: WHILE TRUE DO  
        IF done THEN  
            LEAVE flag;  
        END IF;  
      
        DELETE FROM t_lifeservice_orders WHERE id = cid;
        FETCH NEXT FROM cur INTO cid;
    END WHILE;
    CLOSE cur;  
END
$  
DELIMITER ;

-- ---- 3. 执行存储过程
CALL proc_delete_redundance(); 

-- ---- 4. 删除存储过程
DROP PROCEDURE proc_delete_redundance;

登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!