2015-10-09 10 views

Odpowiedz

10

Musisz użyć WHERE warunek jak na swoje wymagania tak:

delete from mytable where id in(1,2,3,4,5,6,7,8,9,10) 

lub

delete from mytable where id in(select id from mytable where someconditon) 

lub można spróbować w ten sposób jeśli chcesz usunąć pierwszą dziesiątkę, używając ctid:

DELETE FROM mytable 
WHERE ctid IN (
    SELECT ctid 
    FROM mytable 
    GROUP BY s.serialId, s.valuetimestamp 
    ORDER BY s.serialId 
    LIMIT 10 
) 

Jeśli szukasz usunąć duplikaty z tabeli, a następnie spróbuj tego:

DELETE FROM mytable 
WHERE ctid NOT IN 
    (SELECT MAX(s.ctid) 
    FROM table s 
    GROUP BY s.serialId, s.valuetimestamp); 
+0

mam tylko ten sam SerialId A nd valueetimestamp's. Zobacz moje zdjęcie, które dodałem. – ArthurDatur

+0

@ArthurDatur: - Chcesz usunąć duplikaty? –

+0

Nie, chcę usunąć połowę postów LIMIT 10 (z 20) bu w rzeczywistości to tysiące wierszy Nie ma duplikatów – ArthurDatur

0

Jeśli masz jakieś unikalny identyfikator (szeregowego, nazwijmy to „id”) w tabeli, a następnie po prostu zrobić coś takiego:

DELETE FROM table WHERE table.id IN (SELECT table.id FROM table WHERE *whatever*) 

Dodaj lub nie coś takiego jak "limit 0,10"

+0

Mam tylko ten sam identyfikator SerialId i valuetimestamp. Proszę, przyjrzyjcie się mojemu screendumpowi, który dodałem – ArthurDatur

Powiązane problemy