2015-10-09 1 views

ответ

10

Вы должны использовать где условия согласно вашему требованию, как это:

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

или

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

или вы можете попробовать, как это если вы хотите удалить топ-10, используя ctid:

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

Если вы хотите, чтобы удалить дубликаты из таблицы, попробуйте следующее:

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

у меня есть только один и тот же SerialId а, nd valuetimestamp's. Поделись фотографией, которую я добавил. – ArthurDatur

+0

@ArthurDatur: - Вы хотите удалить дубликаты? –

+0

Нет, я хочу удалить половину сообщений LIMIT 10 (из 20) bu в реальности это тысячи строк Нет дубликатов – ArthurDatur

0

Если у вас есть уникальный идентификатор (серийный, давайте назовем это «идентификатор») в таблице, то просто сделать что-то вроде:

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

Добавить или нет что-то вроде «LIMIT 0,10»

+0

У меня есть только те же SerialId и valuetimestamp's. Пожалуйста, мой screendump, который я добавил – ArthurDatur

 Смежные вопросы

  • Нет связанных вопросов^_^