Mysql 數(shù)據(jù)庫去掉指定字段重復(fù)的數(shù)據(jù)

mysql 數(shù)據(jù)庫去掉指定字段重復(fù)的數(shù)據(jù)

問題背景:

目前遇到一個(gè)問題需要進(jìn)行數(shù)據(jù)的去重。

name sex email address
tony man tony@xxx.com dalian
tony man tony@xxx.com dalian

現(xiàn)在想要name字段上加上主鍵。這就需要沖掉重復(fù)的值。目前采用的方式可以如下

創(chuàng)建表的sql為

create table customers(
`name` varchar(30),
sex varchar(5),
email varchar(50),
address varchar(100)
);

造數(shù)據(jù)

insert into customers values ('tony','man','tony@xxx.com','dalian');
insert into customers values ('tony','man','tony@xxx.com','dalian');

需要將name字段定義為主鍵

如果將name字段定義為主鍵,那么問題來了,name字段有重復(fù)的怎么整?首先需要去掉重復(fù)值。

我們可以通過臨時(shí)表的方式進(jìn)行處理。

  1. 我們可以通過一個(gè)變量增加一個(gè)字段來做表的唯一標(biāo)識
set @rownum =0;
select @rownum:=ifnull(@rownum,0)+1 as rownum , c.*from customers c;

  1. 用上面的方式創(chuàng)建一張臨時(shí)表
set @rownum =0;
create table customers_temp select @rownum:=ifnull(@rownum,0)+1 as rownum , c.*from customers c;

  1. 執(zhí)行查看臨時(shí)表的數(shù)據(jù)
select * from customer_temp;

rownum name sex email address
1 tony man tony@xxx.com dalian
2 tony man tony@xxx.com dalian
  1. 我們可以直接將customer_temp表中的數(shù)據(jù)刪掉。
Delete from customers_temp Where rownum Not In (Select Max(t.rownum) From (select * from customers_temp ) t Group By `name`);

為什么在子查詢中又增加了一層子查詢,如果不加會報(bào)錯(cuò)1093

現(xiàn)在我們只是剩下了rownum最大的一條,剩下的步驟,我們可以刪掉之前的表,然后將customers_temp 重命名為customers即可。

drop table customers;

RENAME TABLE customers_temp TO customers;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 觀其大綱 page 01 基礎(chǔ)知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 M...
    周少言閱讀 3,244評論 0 33
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 各位下午好,我是紅枕斜陽。接下來要和大家討論的話題是:“梭哈”可以暴富嗎? 梭哈,又稱沙蟹、谷啤,學(xué)名Five C...
    紅枕斜陽閱讀 1,520評論 0 0
  • 一來踏入崢嶸夢,只嘆當(dāng)局難明曉。 一身鈍氣攜情義,沒心沒肺熬得巧。 一夜輝煌割情苦,滿腹感恩訴渺渺。 一年到頭千般...
    蒙初凝琪閱讀 456評論 0 0
  • 早上上班本打算像往常一樣,邊走邊聽小說,可是,聽著聽著就開始胡思亂想。眼淚就不自覺地往下掉。早上起來就沒讓自己再睡...
    努力的小暖閱讀 666評論 0 0

友情鏈接更多精彩內(nèi)容