Một bảng không có thứ tự hàng tự nhiên, một số hệ thống cơ sở dữ liệu sẽ thực sự từ chối truy vấn của bạn nếu bạn không thêm ORDER BY
ở cuối SELECT
của bạn
Tại sao đơn đặt hàng lại thay đổi?
Bởi vì công cụ cơ sở dữ liệu tìm nạp các hàng của bạn theo thứ tự vật lý mà chúng đến từ bộ lưu trữ. Một số công cụ, như SQL Server, có thể có CLUSTERED INDEX
điều này buộc một trật tự vật lý, nhưng vẫn không bao giờ thực sự đảm bảo rằng bạn nhận được kết quả của mình theo thứ tự chính xác đó.
Chỉ mục được phân nhóm chủ yếu tồn tại dưới dạng tối ưu hóa. PostgreSQL có CLUSTER
tương tự có chức năng thay đổi thứ tự vật lý, nhưng đó là một quá trình nặng sẽ khóa bảng: http://www.postgresql.org/docs/9.1/static/sql-cluster.html
Làm thế nào để buộc một thứ tự bảng chữ cái của các hàng?
Thêm ORDER BY
mệnh đề trong truy vấn của bạn.
SELECT * FROM table ORDER BY column