作者TeemingVoid (TeemingVoid)
看板Database
标题Re: [SQL ] 请问能否删除某栏位重复的资料?
时间Fri Feb 3 20:35:44 2012
※ 引述《kusoayan (玮哥)》之铭言:
: DB是 MySQL
: ...
: 想请问的是,有没有什麽 SQL 语法可以删除整张table中 kid 重复的资料?
: 例如
: id / kid / type :
: 1 / 15 / A
: 2 / 16 / B
: 3 / 15 / C
: 4 / 17 / D
: 有什麽方法可以把 C 删掉吗?
: 因为有可能有很多笔都重复…
可以利用 delete 配合 self-join,符合 on 条件式的资料即可删除。
下列的指令是假设您想删除的是「kid 重复,但 id 编号比较大」的资料:
use test;
drop table if exists test;
create table test
(
id int,
kid int,
type char(1)
);
insert into test values
(1, 15, 'A'), (2, 16, 'B'), (3, 15, 'C'),
(4, 17, 'D'), (5, 15, 'E'), (6, 16, 'F');
-- 删除「kid 重复,但 id 编号比较大」的资料:
delete test from test join test R on (test.kid = R.kid and test.id > R.id);
select * from test;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.38.73.90
1F:→ kusoayan:了解了 谢谢!! 02/03 20:54