Không chắc vấn đề của bạn chính xác là gì hoặc vấn đề "không hoạt động" như thế nào, do thiếu chi tiết trong câu hỏi của bạn. Nhưng ít nhất hai yếu tố có thể ảnh hưởng đến việc sắp xếp theo cách mà bạn sẽ nhận được các kết quả khác nhau trong MySQL và PostgreSQL.
Đầu tiên là đối chiếu . Đặc biệt nếu bạn đang chơi với 9.1 beta. Lần cuối cùng tôi cài đặt MySQL (cách đây một thời gian, vì vậy họ có thể đã sửa lỗi này kể từ đó), nó đang đối chiếu mọi thứ dưới dạng latin-1 / swedish theo mặc định, so với utf-8 / english cho PostgreSQL.
Cái kia là nulls. MySQL luôn đặt những thứ này cuối cùng nếu bộ nhớ phục vụ. Ngược lại, PostgreSQL luôn đặt chúng ở cuối các chỉ mục btree, và do đó đặt chúng ở vị trí cuối cùng khi đặt hàng asc và đầu tiên khi đặt hàng mô tả. Bạn có thể thay đổi hành vi này bằng cách sử dụng nulls đầu tiên / nulls cuối cùng .
Trong trường hợp cụ thể của bạn, tôi đoán là bạn muốn order by rating desc nulls last
, trái ngược với hành vi mặc định sẽ đặt null trước.