zoukankan      html  css  js  c++  java
  • sql

    删除重复数据,保留最小数据

    SELECT * FROM complete where dm in (SELECT dm FROM complete GROUP BY dm HAVING count(1)>1);
    DELETE FROM complete WHERE id in (SELECT id from (SELECT id FROM complete where dm in (SELECT dm FROM complete GROUP BY dm HAVING count(1)>1) AND id NOT in (SELECT min(id) FROM complete GROUP BY dm HAVING count(1)>1)) a);
      

    更改表数据类型

    ALTER TABLE `all_record`
    ENGINE=MyISAM;

    ALTER TABLE `all_record`
    ENGINE=InnoDB;

    存储过程更新数据拿下一条记录

    BEGIN
    DECLARE udm VARCHAR(64);
    DECLARE in_data_time int(10);
    DECLARE in_zdf DECIMAL(10,2);
    DECLARE in_done int;
    DECLARE done int;
    DECLARE u_c CURSOR FOR SELECT dm FROM all_record GROUP BY dm ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
    OPEN u_c;
    c:LOOP
    FETCH u_c INTO udm;
    if done=1 THEN
    LEAVE c;
    ELSE
    SET @old_data_time = 0;
    BEGIN
    DECLARE in_u_c CURSOR FOR SELECT data_time,zdf FROM all_record WHERE dm=udm ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET in_done=1;
    OPEN in_u_c;
    in_c:LOOP
    FETCH in_u_c INTO in_data_time,in_zdf;
    if in_done=1 THEN
    LEAVE in_c;
    ELSE
    UPDATE all_record SET next_result=in_zdf WHERE next_result=-110 AND dm=udm AND data_time=@old_data_time;
    SET @old_data_time=in_data_time;
    end if;
    END LOOP in_c;
    CLOSE in_u_c;
    SET in_done=0;
    END;
    end if;
    END LOOP c;
    CLOSE u_c;
    END

    存储过程拿上一条记录

    BEGIN
    DECLARE udm VARCHAR(64);
    DECLARE in_data_time int(10);
    DECLARE in_zxj DECIMAL(10,2);
    DECLARE in_done int;
    DECLARE done int;
    DECLARE u_c CURSOR FOR SELECT dm FROM all_record GROUP BY dm ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
    OPEN u_c;
    c:LOOP
    FETCH u_c INTO udm;
    if done=1 THEN
    LEAVE c;
    ELSE
    SET @old_zxj = 0;
    BEGIN
    DECLARE in_u_c CURSOR FOR SELECT data_time,zxj FROM all_record WHERE dm=udm ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET in_done=1;
    OPEN in_u_c;
    in_c:LOOP
    FETCH in_u_c INTO in_data_time,in_zxj;
    if in_done=1 THEN
    LEAVE in_c;
    ELSE
    UPDATE all_record SET zs=@old_zxj WHERE zs=-11 AND dm=udm AND data_time=in_data_time;
    SET @old_zxj=in_zxj;
    end if;
    END LOOP in_c;
    CLOSE in_u_c;
    SET in_done=0;
    END;
    end if;
    END LOOP c;
    CLOSE u_c;
    END

  • 相关阅读:
    整理了8个Python中既冷门又实用的技巧
    python中68个内置函数的总结
    Python中常见的8种数据结构的实现方法(建议收藏)
    python基础教程:dir()和__dict__属性的区别
    Python 优雅获取本机 IP 方法
    Python类中的self到底是干啥的
    python中反转列表的三种方式
    Flask学习笔记(2)-login_page
    利用Flask + python3.6+MYSQL编写一个简单的评论模块。
    最近写了个自动填写调查的问卷的简单爬虫
  • 原文地址:https://www.cnblogs.com/nowphp/p/6678436.html
Copyright © 2011-2022 走看看