Mysql如何實現(xiàn)更新偶數(shù)行或者奇數(shù)行
一、需求背景
在處理數(shù)據(jù)時,由于表的主鍵是data_seq_id, 自己定義的一個序列,例如:INWDN000827....
這些數(shù)據(jù)是需要用戶來維護的,如果用戶維護成兩份,因為主鍵設計成這樣已經(jīng)無法避免了。如何清除掉重復數(shù)據(jù)呢?
二、查找重復數(shù)據(jù)
通過group by count 查找到重復數(shù)據(jù)。
| data_seq_id | value | flag |
| A001 | v1 | Y |
| A002 | v1 | Y |
| A003 | v2 | Y |
| A004 | v2 | Y |
三、update 奇數(shù)行的flag為N
如何找到奇數(shù)行或者偶數(shù)行呢?
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 可以將奇數(shù)行找到data_seq_id 。然后將其update 掉即可。
四、總結(jié)
實際上解決這個問題應該是從根本上解決,主鍵不能這么隨意,應該在設定主鍵之初就考慮到這個問題。我的想法是用value 然后md5生成主鍵,即不會重復也可以確保不會數(shù)據(jù)重復。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Windows下mysql 5.7 設置區(qū)分大小寫(敏感),設置默認編碼 utf8mb4
最近需要將Windows下的mysql 5.7設置區(qū)分大小寫(敏感),設置默認編碼 utf8mb4,需要的朋友可以參考下2022-10-10
MySQL的一條慢SQL查詢導致整個網(wǎng)站宕機的解決方法
通常來說,我們看到的慢查詢一般還不致于導致掛站,頂多就是應用響應變慢不過這個恰好今天被我撞見了,一個慢查詢把整個網(wǎng)站搞掛了2016-07-07
SQL中current_date()函數(shù)的實現(xiàn)
日期時間類型的數(shù)據(jù)也是經(jīng)常要用到的,SQL中也提供了一些函數(shù)對這些數(shù)據(jù)進行處理,本文主要介紹了SQL中current_date()函數(shù)的實現(xiàn),具有一定的參考價值2024-02-02
MySQL安裝時一直卡在starting?server的問題及解決方法
這篇文章主要介紹了MySQL安裝時一直卡在starting?server的問題及解決方法,出現(xiàn)這種情況大概有兩個原因,文中對每種原因給大家詳細介紹,需要的朋友可以參考下2022-06-06

