2015-10-09 18 views

Trả lời

10

Bạn cần phải sử dụng một nơi mà điều kiện theo yêu cầu của bạn như thế này:

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

hoặc

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

hoặc bạn có thể thử như thế này nếu bạn muốn xóa top 10 bằng cách sử dụng ctid:

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

Nếu bạn đang tìm kiếm để loại bỏ các bản sao từ bảng của bạn sau đó thử này:

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

tôi chỉ có SerialId cùng một nd valuetimestamp´s. Se hình ảnh của tôi mà tôi đã thêm vào. – ArthurDatur

+0

@ArthurDatur: - Bạn có muốn xóa các bản sao không? –

+0

Không, tôi muốn xóa một nửa số bài viết LIMIT 10 (trong số 20) bu trong thực tế là hàng ngàn hàng Không có bản sao – ArthurDatur

0

Nếu bạn có một số định danh duy nhất (nối tiếp, chúng ta hãy gọi nó là "id") trong bảng của bạn, sau đó chỉ cần đảm cái gì đó như:

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

Thêm hay không cái gì đó như "giới hạn 0,10"

+0

Tôi chỉ có cùng SerialId và valuetimestamp. Xin vui lòng se screendump của tôi mà tôi đã thêm – ArthurDatur

Các vấn đề liên quan