Mysql如何实现更新偶数行或者奇数行
目录
- 一、需求背景
- 二、查找重复数据
- 三、update 奇数行的flag为N
- 四、总结
一、需求背景
在处理数据时,由于表的主键是data_seq_id, 自己定义的一http://www.devze.com个序列,例如: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 @rownpythonum := 0 ) tmp_table) t where t.row_num % 2 = 1
通过这个sql 可以将奇数行找到data_seq_id 。然后将其update 掉即HZbDq可。
四、总结
实际上解决这个问题应该是从根本上解决,主键不能这么随意,应该在设定主键之初就考虑到这个问题。我的想法是用value 然后md5生成主键,即不会重复也可以确保不会数据js重复。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)http://www.devze.com。
精彩评论