2010-11-03 19 views
8

Tôi đang cố gắng để xóa các tiêu đề bổ sung cuối cùng của một bảng:Sqlite cách xóa tiêu đề bổ sung cuối cùng của một bảng

DELETE FROM notes ORDER BY created_at DESC LIMIT 1 

này chỉ gây ra các lỗi sau:

near "ORDER": syntax error 

Tại sao có thể tôi nhận được lỗi này? (! notes tồn tại và có các bản ghi trong nó)

+0

là created_at một cột bạn xác định? –

Trả lời

12

Hãy thử điều này

DELETE FROM notes WHERE id = (SELECT MAX(id) FROM notes); 
+0

Cảm ơn đây là những gì tôi gona sử dụng! – Markus

+0

Nếu tôi không có cột 'id' thì sao? – Rolf

0

Kiểm tra bài này, nó sử dụng các truy vấn lồng nhau để đạt được những gì bạn đang cố gắng để làm:

http://sqlblogcasts.com/blogs/simons/archive/2009/05/22/UPDATE-and-DELETE-TOP-and-ORDER-BY---Part2.aspx

+0

Trong khi câu trả lời này về mặt lý thuyết có thể trả lời câu hỏi, [tốt hơn] (http://meta.stackexchange.com/q/8259) để bao gồm các phần quan trọng của câu trả lời ở đây và cung cấp liên kết để tham khảo. – hichris123

2
delete from notes where created_at = (select max(created_at) from notes); 

Xem ra, điều này sẽ không giới hạn số hàng bị xóa. Nếu có nhiều hơn một hàng ở mức tối đa (created_at), điều này sẽ xóa tất cả chúng vì chủ đề bạn chỉ định không tồn tại (mục nhập được thêm gần đây nhất của bảng).

+0

Đó là giải pháp cho tôi! Cảm ơn gợi ý của bạn! Tôi chỉ sử dụng tối đa (id) để đảm bảo, rằng có thực sự chỉ là id nhập cuối cùng ... – Markus

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