我有桌子
DATE TRAN_VAL NAME
may01 24 hari
may01 24 hari
jun22 29 giri
jun22 29 giri
dec19 33 niraj
jan01 56 balu
在上表中,名称hari& giri有完整的重复记录, 如何删除/删除它们 O / P
DATE TRAN_VAL NAME
may01 24 hari
jun22 29 giri
dec19 33 niraj
jan01 56 balu
答案 0 :(得分:0)
如果您的表中有主键,则可以通过此查询 -
如果只想保留最新记录 -
DELETE t1 FROM mytable t1
JOIN mytable t2 ON t1.name = t2.name
AND t1.primary_key < t2.primary_key;
如果只想保留第一条记录 -
DELETE t1 FROM mytable t1
JOIN mytable t2 ON t1.name = t2.name
AND t1.primary_key > t2.primary_key;
如果您没有主键和任何字段,您可以区分您的行,那么您可以通过更改查询来实现它 -
ALTER IGNORE TABLE mytable ADD UNIQUE Uk_name(name);
注意:它会锁定表格,因此请避免在高峰时间在生产服务器上使用。
如果您不想要这个唯一的密钥,请在删除副本后将其删除。
答案 1 :(得分:0)
DELETE FROM table_name 其中DATE,TRAN_VAL,NAME in( SELECT DATE,TRAN_VAL,NAME FROM( 选择DATE,TRAN_VAL,NAME FROM table_name GROUP BY DATE,TRAN_VAL,NAME 有COUNT(*)&gt; 1)temp );