當前位置:首頁 » 操作系統 » 資料庫刪除重復數據

資料庫刪除重復數據

發布時間: 2022-02-07 16:35:18

sql資料庫刪除相同記錄

DELETE FROM table
WHERE id NOT IN
(SELECT MAX(id) FROM table GROUP BY name)

注意備份

② 關於刪除SQL資料庫表裡重復數據的問題

5、創建聯合主鍵
alter table 表名 add constraint pk_name_time primary key(name,time)

呵呵,我替賓士補充的,分給他就是了

③ 如何查找和刪除資料庫中的重復數據

法一:
用Group
by語句
此查找很快的select
count(num),
max(name)
from
student
–查找表中num列重復的,列出重復的記錄數,並列出他的name屬性group
by
numhaving
count(num)
>;1
–按num分組後找出表中num列重復,即出現次數大於一次delete
from
student(上面Select的)這樣的話就把所有重復的都刪除了。—–慎重法二:當表比較大(例如10萬條以上)時,這個方法的效率之差令人無法忍受,需要另想辦法:—-
執行下面SQL語句後就可以顯示所有DRAWING和DSNO相同且重復的記錄SELECT
*
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
D
–D相當於First,SecondWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);—-
執行下面SQL語句後就可以刪除所有DRAWING和DSNO相同且重復的記錄DELETE
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
DWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);法一:
用Group
by語句
此查找很快的select
count(num),
max(name)
from
student
–查找表中num列重復的,列出重復的記錄數,並列出他的name屬性group
by
numhaving
count(num)
>;1
–按num分組後找出表中num列重復,即出現次數大於一次delete
from
student(上面Select的)這樣的話就把所有重復的都刪除了。—–慎重法二:當表比較大(例如10萬條以上)時,這個方法的效率之差令人無法忍受,需要另想辦法:—-
執行下面SQL語句後就可以顯示所有DRAWING和DSNO相同且重復的記錄SELECT
*
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
D
–D相當於First,SecondWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);—-
執行下面SQL語句後就可以刪除所有DRAWING和DSNO相同且重復的記錄DELETE
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
DWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);

④ sql資料庫中出現重復行數據,如何刪除這些重復記錄

示例

假設存在一個產品信息表Procts,其表結構如下:

CREATETABLEProcts(
ProctIDint,
ProctNamenvarchar(40),
Unitchar(2),
UnitPricemoney
)

表中數據如圖:

*fromProcts_tempdroptableProcts_temp


這樣就完成了對表中重復記錄的刪除。無論表有多大,它的執行速度都是相當快的,而且因為幾乎不用寫語句,所以它也是很安全的

⑤ sql中刪除重復數據

SQL Server刪除重復行是我們最常見的操作之一,下面就為您介紹六種適合不同情況的SQL Server刪除重復行的方法,供您參考。

1.如果有ID欄位,就是具有唯一性的欄位

delect table where id not in (

select max(id) from table group by col1,col2,col3...
)
group by 子句後跟的欄位就是你用來判斷重復的條件,如只有col1,那麼只要col1欄位內容相同即表示記錄相同。

2. 如果是判斷所有欄位也可以這樣

select * into #aa from table group by id1,id2,....
delete table
insert into table
select * from #aa
3. 沒有ID的情況

select identity(int,1,1) as id,* into #temp from tabel
delect # where id not in (
select max(id) from # group by col1,col2,col3...)
delect table
inset into table(...)
select ..... from #temp
4. col1+','+col2+','...col5 聯合主鍵

select * from table where col1+','+col2+','...col5 in (
select max(col1+','+col2+','...col5) from table
where having count(*)>1
group by col1,col2,col3,col4
)
group by 子句後跟的欄位就是你用來判斷重復的條件,如只有col1,那麼只要col1欄位內容相同即表示記錄相同。

5.

select identity(int,1,1) as id,* into #temp from tabel
select * from #temp where id in (
select max(id) from #emp where having count(*)>1 group by col1,col2,col3...)
6.

select distinct * into #temp from tablename
delete tablename
go
insert tablename select * from #temp Sqlclub
go
drop table #temp
以上就是SQL Server刪除重復行的方法介紹。

⑥ sql刪除資料庫中重復的數據語句怎麼寫

你要先找到規律,並且有確定的限制條件。是否所有的重復數據都刪了只留一條?舊數據和新數據的界定是什麼?是某個時刻?那舊數據中有重復數據刪不刪?重復數據是指僅僅title欄位信息一樣?

如果是在工作上,刪除數據是一項很嚴謹的事,這個你必須要想清楚所有的條件情況,只是這樣幾句話,讓網友給個sql語句,直接用上去,害的是你自己。

也不知道你的資料庫具體是怎麼樣的,給個一般刪除重復數據的方法
select distinct * into #Tmp_aa from tableName 把不重復的找出來插入到臨時表
drop table tableName 刪掉原來的表
select * into tableName from #Tmp_aa 把臨時表插入到新建的tableName
drop table #Tmp_aa 刪掉臨時表

⑦ sql資料庫刪除重復記錄

delete from table where id not in

select min(id) from table group by name,url(如果有其他行辨別那麼也在這里加上)
我保留的是id最小的行,你也可以留最大的行
我沒辦法加括弧,寫了子查詢加了括弧就發不上來

⑧ SQL中如何刪除重復數據

select
欄位1,欄位2,欄位3
from
table
group
by
欄位1,欄位2,欄位3
having
count(*)>1
用上邊這句能找出所有重復的數據
欄位1,2,3你替換成你表裡的欄位名,如果有更多欄位的話,你就繼續添加,最後group
by的時候不要忘記了
刪除的時候要建立一個臨時表
create
table
new_table
as
select
欄位1,欄位2,欄位3
from
old_table
group
by
欄位1,欄位2,欄位3;
然後刪除原表數據
truncate
table
old_table;
然後把臨時表數據反插回去
insert
into
new_table
select
*
from
old_table;

⑨ 在Mysql下如何刪除重復的數據~

首先先創建一個臨時表,然後將author表中無重復的數據拎出來,放進臨時表中。
create temporary table 表名
select distinct id,name,password
from author

然後將author表中的記錄全部刪除。
delete from author

最後將臨時表中的記錄插入author表中
insert into author (id,name,password)
select id,name,password
from 臨時表

⑩ mysql資料庫刪除重復數據

直接拿1樓的來改吧,
delete
from
zhszty_ebook
where
id
not
in(
select
*
from
(select
max(id)
from
zhszty_ebook
group
by
url
)
as
tmp);------------mysql有個特性,對於表進行修改,刪除操作,子查詢不能和外層的查詢的表一樣,所以在加個select就可以了。其他資料庫按照樓上的那個是沒問題的

熱點內容
p搜系統只緩存1頁為什麼 發布:2024-09-20 16:48:51 瀏覽:838
上網的賬號和密碼是什麼東西 發布:2024-09-20 16:31:31 瀏覽:612
安卓手機王者榮耀如何調超高視距 發布:2024-09-20 16:31:30 瀏覽:428
安卓G是什麼app 發布:2024-09-20 16:23:09 瀏覽:81
iphone怎麼壓縮文件 發布:2024-09-20 16:08:18 瀏覽:356
linux查看用戶名密碼是什麼 發布:2024-09-20 16:03:20 瀏覽:744
mac執行python腳本 發布:2024-09-20 15:58:52 瀏覽:779
單片機android 發布:2024-09-20 09:07:24 瀏覽:765
如何提高三星a7安卓版本 發布:2024-09-20 08:42:35 瀏覽:664
如何更換伺服器網站 發布:2024-09-20 08:42:34 瀏覽:311