从相当大的SQL Server表中删除重复行的最佳方法是什么(即300,000多行)?
当然,由于RowID身份字段的存在,行不会是完美的重复.
MyTable的
RowID int not null identity(1,1) primary key,
Col1 varchar(20) not null,
Col2 varchar(2048) not null,
Col3 tinyint not null
Run Code Online (Sandbox Code Playgroud) 我已经给客户端以下查询删除重复的电话号码.MSSQL数据库中的记录,但现在他们还需要在MySQL上执行此操作,并且他们报告MySQL抱怨查询的格式.我已经为我的代码示例包含了一个带有重复项的测试表的设置,但实际的删除查询才是最重要的.
我在无知和紧迫的情况下问这个,因为我还在忙着下载和安装MySQL,也许有人可以帮忙.
create table bkPhone
(
phoneNo nvarchar(20),
firstName nvarchar(20),
lastName nvarchar(20)
)
GO
insert bkPhone values('0783313780','Brady','Kelly')
insert bkPhone values('0845319792','Mark','Smith')
insert bkPhone values('0834976958','Bill','Jones')
insert bkPhone values('0845319792','Mark','Smith')
insert bkPhone values('0828329792','Mickey','Mouse')
insert bkPhone values('0834976958','Bill','Jones')
alter table bkPhone add phoneId int identity
delete from bkPhone
where phoneId not in
(
select min(phoneId)
from bkPhone
group by phoneNo,firstName,lastName
having count(*) >= 1
)
Run Code Online (Sandbox Code Playgroud)