Nejste si jisti, jaký je váš problém přesně nebo jak to „nefunguje“, protože ve vaší otázce nejsou podrobnosti. Ale minimálně dva faktory mohou ovlivnit řazení takovým způsobem, že byste v MySQL a PostgreSQL získali odlišné výsledky.
První je kolování . Zejména pokud hrajete s 9.1 beta. Naposledy jsem nainstaloval MySQL (což bylo před chvílí, takže to možná od té doby opravili), ve výchozím nastavení to porovnávalo věci jako latin-1/švédština, vs utf-8/angličtina pro PostgreSQL.
Druhý je nulový. MySQL je vždy umístí na poslední místo, pokud paměť slouží. Naproti tomu PostgreSQL je důsledně umisťuje na konec indexů btree, a proto je umisťuje na poslední místo při objednávání asc a na první místo při objednávání desc. Toto chování můžete změnit objednáním pomocí nulls first/nulls last .
Ve vašem konkrétním případě odhaduji, že chcete order by rating desc nulls last
, na rozdíl od výchozího chování, které na první místo umístí hodnoty null.