一、需求背景在处理数据时,由于表的主键是data_seq_id, 自己定义的一个序列,例如:inwdn000827....这些数据是需要用户来维护的,如果用户维护成两份,因为主键设计成这样已经无法避免
一、需求背景
在处理数据时,由于表的主键是data_seq_id, 自己定义的一个序列,例如:inwdn000827....
这些数据是需要用户来维护的,如果用户维护成两份,因为主键设计成这样已经无法避免了。如何清除掉重复数据呢?
二、查找重复数据
通过group by count 查找到重复数据。
data_seq_id | value | flag |
a001 | v1 | y |
a002 | v1 | y |
a003 | v2 | y |
a004 | v2 | y |
三、update 奇数行的flag为n
如何找到奇数行或者偶数行呢?
select *
from( select @rownum := @rownum + 1 as row_num, t.*
from m_bis_data_d t,( select @rownum := 0 ) tmp_table) t
where t.row_num % 2 = 1
通过这个sql 可以将奇数行找到data_seq_id 。然后将其update 掉即可。
四、总结
实际上解决这个问题应该是从根本上解决,主键不能这么随意,应该在设定主键之初就考虑到这个问题。我的想法是用value 然后md5生成主键,即不会重复也可以确保不会数据重复。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
相关文章:
-
-
当mysql出现性能问题时,一般会查看mysql的执行状态,执行命令: show processlist各列的含义列名含义id一个标识,你要kill一个语句的时候使用,例如mysq…
-
数据准备create table `user_info` ( `id` bigint(20) not null auto_increment comment 'id', `na…
-
1.安装包的下载进入mysql官网:www.mysql.com在downloads页面,翻到最下面选择社区版(community)离线下载选择图中标红的包,若是在线下载选择第一个y…
-
一、简介mysql内建的复制功能是构建大型,高性能应用程序的基础 通过将mysql的某一台主机(master)的数据复制到其他主机(slaves)上,并重新执行一遍来执行 复制过程…
-
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论