2013-06-19 100 views
-2

名稱相關的行我有一個數據庫表如何刪除甲骨文

ID NAME   REF 
----------------------- 
1 ar.chik  33 
4 ar.chik.rt 33 
5 dy.i.op  35 
9 dy.i 

以下記錄哪種說法可以刪除以下記錄:

ID NAME   REF 
------------------------ 
4 ar.chik.rt 33 
5 d.yi.op  35 
+2

返回這些行而不是其他行的邏輯是什麼? – Taryn

+0

這些行是perfix(.rt,.op等)的雙倍。這些是我需要刪除的重複項 – archik

回答

2

如果你想刪除您的表類似於原來name行,那麼你應該能夠使用的東西類似如下:

delete 
from yourtable 
where id in (select id 
      from 
      (
       select id, 
       row_number() over(partition by ref 
            order by length(name)) rn 
       from yourtable 
      ) d 
      where rn > 1); 

SQL Fiddle with Demo

1

如果我通情達理你想要什麼,您可以使用此:

DELETE FROM Yourtable WHERE name='ar.chik.rt' OR name='d.yi.op' ; 

DELETE FROM Yourtable WHERE name IN ('ar.chik.rt','d.yi.op') ; 

,或者如果你想多點刪除記錄:

DELETE FROM Yourtable WHERE name LIKE '%.%.%' ; 
0
delete from Yourtable 
where id in(4,5);