thể trùng lặp:
Why do results from a SQL query not come back in the order I expect?Thứ tự PostgreSQL có được bảo đảm đầy đủ nếu phân loại trên thuộc tính không phải duy nhất không?
Từ đọc 7.5 Sorting Rows và từ những vấn đề tôi đã nhìn thấy với PostgreSQL, ấn tượng của tôi là như sau, nhưng phần đó là không hoàn toàn rõ ràng, vì vậy tôi sẽ hãy biết ơn nếu ai đó có thể xác minh:
SELECT * FROM items;
không có thứ tự đảm bảo.
SELECT * FROM items ORDER BY published_date ASC;
đảm bảo rằng hai mục có những ngày khác nhau đi theo một thứ tự nhất định, nhưng không không đảm bảo rằng hai mục có cùng ngày lúc nào cũng theo thứ tự.
SELECT * FROM items ORDER BY published_date ASC, id ASC;
luôn trả về các mục theo cùng thứ tự vì nó hoàn toàn xác định.
Tôi có quyền này không?
Tôi không hoàn toàn rõ ràng về việc sắp xếp trên một thuộc tính (chẳng hạn như published_date
) đảm bảo thứ tự cho các bản ghi có cùng giá trị, như trong ví dụ thứ hai.
Bạn có quyền. Thứ tự duy nhất được đảm bảo là thứ tự mà "ORDER BY" của bạn áp đặt. Nếu có hoán vị có thể * trong * thứ tự đó tất cả có thể là một đầu ra hợp lệ. – wildplasser
Đây là trường hợp cụ thể của câu hỏi: http://stackoverflow.com/questions/10999913/why-do-results-from-a-sql-query-not-come-back-in-the-order-i- mong đợi –