सुनिश्चित नहीं है कि आपकी समस्या वास्तव में क्या है या यह कैसे "काम नहीं करती", आपके प्रश्न में विवरण की कमी से। लेकिन कम से कम दो कारक सॉर्टिंग को इस तरह प्रभावित कर सकते हैं कि आपको MySQL और PostgreSQL में अलग-अलग परिणाम मिलेंगे।
पहला है collation . विशेष रूप से यदि आप 9.1 बीटा के साथ खेल रहे हैं। पिछली बार मैंने MySQL स्थापित किया था (जो कुछ समय पहले था, इसलिए उन्होंने इसे तब से ठीक कर दिया होगा), यह डिफ़ॉल्ट रूप से लैटिन -1/स्वीडिश के रूप में चीजों को जोड़ रहा था, PostgreSQL के लिए utf-8/अंग्रेजी बनाम।
दूसरा शून्य है। यदि स्मृति कार्य करती है तो MySQL हमेशा इन्हें अंतिम स्थान पर रखता है। इसके विपरीत, PostgreSQL लगातार उन्हें btree अनुक्रमणिका के अंत में रखता है, और इस प्रकार उन्हें asc ऑर्डर करते समय और desc ऑर्डर करते समय सबसे पहले रखता है। आप nulls first/nulls last ।
आपके विशेष मामले में, मेरा अनुमान है कि आप order by rating desc nulls last
, डिफ़ॉल्ट व्यवहार के विपरीत जो पहले शून्य को रखेगा।