美文网首页
记录一次BUG修复数据MySQL数据

记录一次BUG修复数据MySQL数据

作者: 钟离惜 | 来源:发表于2020-12-21 20:32 被阅读0次

工作难,难在策划说这个以前没有旧数据的,QA说这个测过了没问题,然后上上去有旧数据,然后要我来修复旧数据。。没办法,工作本份。。修复一下,这次也是让我的sql能力提升了不少吧,从一个小菜鸡慢慢成长。。。。

开始的话时候思路不清晰,然后搞了好几个视图来做。

DROP VIEW IF EXISTS user_level;
DROP VIEW IF EXISTS user_all_user;
DROP VIEW IF EXISTS user_all_user1;

CREATE VIEW user_all_user1 AS SELECT userid,SUM(amount) AS sum FROM xg_user_log_item WHERE itemtype=95002150 AND xg_user_log_item.way=129 GROUP BY xg_user_log_item.userid;
CREATE VIEW user_all_user AS SELECT userid FROM user_all_user1 WHERE sum>=25;
UPDATE xg_user_tempdata SET data4=data4&(~(1<<(8-1))) WHERE userid NOT IN (SELECT userid FROM user_all_user) AND type=20104;
UPDATE xg_user_animalsoul SET pos=0 WHERE userid NOT IN (SELECT userid FROM user_all_user) AND pos=8;

DROP VIEW IF EXISTS user_all_user;
CREATE VIEW user_all_user AS SELECT userid FROM user_all_user1 WHERE sum>=16;
UPDATE xg_user_tempdata SET data4=data4&(~(1<<(7-1))) WHERE userid NOT IN (SELECT userid FROM user_all_user) AND type=20104;
UPDATE xg_user_animalsoul SET pos=0 WHERE userid NOT IN (SELECT userid FROM user_all_user) AND pos=7;

CREATE VIEW user_level AS SELECT userid,MAX(level) AS maxlevel FROM xg_user_animalsoul WHERE pos>0 GROUP BY userid;
UPDATE xg_user_tempdata JOIN user_level ON user_level.userid=xg_user_tempdata.userid SET xg_user_tempdata.data2=maxlevel WHERE xg_user_tempdata.type=20104;

DROP VIEW IF EXISTS user_level;
DROP VIEW IF EXISTS user_all_user;
DROP VIEW IF EXISTS user_all_user1;

后来用了临时表就简洁多了。

UPDATE xg_user_tempdata SET data4=data4&(~(1<<6)) WHERE type=20104 AND data4&(1<<6)>0 AND userid NOT IN 
(SELECT userid FROM xg_user_log_item WHERE itemtype=95002150 AND way=129 AND amount=7);

UPDATE xg_user_tempdata SET data4=data4&(~(1<<7)) WHERE type=20104 AND data4&(1<<7)>0 AND userid NOT IN 
(SELECT userid FROM xg_user_log_item WHERE itemtype=95002150 AND way=129 AND amount=9);

UPDATE xg_user_animalsoul SET pos=0 WHERE pos=7 AND userid NOT IN 
(SELECT xg_user_tempdata.userid FROM xg_user_tempdata WHERE type = 20104 AND data4&(1<<6)>0);

UPDATE xg_user_animalsoul SET pos=0 WHERE pos=8 AND userid NOT IN 
(SELECT xg_user_tempdata.userid FROM xg_user_tempdata WHERE type = 20104 AND data4&(1<<7)>0);

UPDATE xg_user_tempdata,(SELECT userid,MAX(level) AS maxlevel FROM xg_user_animalsoul WHERE pos>0 GROUP BY userid) AS A 
SET xg_user_tempdata.data2=A.maxlevel WHERE xg_user_tempdata.type=20104 AND A.userid=xg_user_tempdata.userid;

上面的最后一条语句用了MAX和GROUP BY,后来想用ORDER BY和单独写一个,学一下写法:

UPDATE xg_user_tempdata,(SELECT DISTINCT(userid),level AS maxlevel FROM xg_user_animalsoul WHERE pos>0 ORDER BY level DESC) AS A 
SET xg_user_tempdata.data2=A.maxlevel WHERE xg_user_tempdata.type=20104 AND A.userid=xg_user_tempdata.userid;

下面是多表统计数量然后去另外一个表选出对应数据,第一种方法还是视图,第二种是联表SELECT:

DROP VIEW IF EXISTS user_times;
CREATE VIEW user_times AS SELECT userid, COUNT(userid) AS times FROM xg_user_log_item WHERE way=554 AND itemtype=95002153 AND isaward=1 AND amount=40 GROUP BY userid;
SELECT id,name,server,plat,times FROM xg_user JOIN user_times ON user_times.userid=xg_user.id;
DROP VIEW IF EXISTS user_times;

SELECT id,name,server,plat,times FROM xg_user,(SELECT userid, COUNT(userid) AS times FROM xg_user_log_item WHERE way=554 AND itemtype=95002153 AND isaward=1 AND amount=40 GROUP BY userid) AS user_times WHERE id=userid;

相关文章

  • 记录一次BUG修复数据MySQL数据

    工作难,难在策划说这个以前没有旧数据的,QA说这个测过了没问题,然后上上去有旧数据,然后要我来修复旧数据。。没办法...

  • 2018-12-23组会

    修复DispatchConfig.xml中额外采集数据不能置为0的BUG 可以通过Debug的方式定位BUG并修复...

  • 踩坑Swift json解析,修复bug后的喜出望外

    刚修复了一个困扰两天的bug, 四出望外。bug来自于对服务端异常数据的解析失败,也是再一次遭遇,在吐槽服务端数据...

  • MySQL语法模板 SQL语句:其他

    MySQL语法模板系列 修复表 检查表 校验表 创建表根据查询结果 删除表数据 插入数据 插入数据(存在的数据跳过...

  • 每周工作总结

    这周完成的 1 完善古诗模块相关数据接口,修复部分数据接口中存在的bug。 2 重构古诗模块数据库表结构设计与数据...

  • Android直连数据库

    这篇文章记录Android直连mysql数据库,直连SqlServer数据库 直连mysql数据库 采用JDBC的...

  • 5.MySQL学习笔记

    MySQL 主要介绍了数据表记录查询和多表记录查询基本方法。谢阅! 一.MySQL概述 1.数据库概述 数据库就是...

  • android开发中数据查看web工具(数据库共享参数和data

    前提(可以略过) 旧项目已停止更新,新项目远程数据控制,修复bug,支持云端控制 android开发中需要对数据库...

  • Caused by: android.database.Stal

    这几天修复了程序bug,统一把游标cursor都关闭了一下。一不小心造了个bug。通常查询数据库,获取到数据后,都...

  • 2017-4-5_工作报告

    工作报告 修复汇车滚动加载bug 下拉刷新重新加载数据后,没有清空旧的数据滚动加载时把旧数据和新数据拼接在一起了。...

网友评论

      本文标题:记录一次BUG修复数据MySQL数据

      本文链接:https://www.haomeiwen.com/subject/ogsdnktx.html