Vous ne savez pas exactement quel est votre problème ou comment cela "ne fonctionne pas", par manque de détails dans votre question. Mais au moins deux facteurs peuvent affecter le tri de telle sorte que vous obtiendriez des résultats différents dans MySQL et PostgreSQL.
Le premier est collation . En particulier si vous jouez avec la version bêta 9.1. La dernière fois que j'ai installé MySQL (c'était il y a un moment, ils ont peut-être corrigé cela depuis), il rassemblait les choses en latin-1/suédois par défaut, contre utf-8/english pour PostgreSQL.
L'autre est nul. MySQL place toujours ces derniers si ma mémoire est bonne. En revanche, PostgreSQL les place systématiquement à la fin des index btree, et les place donc en dernier lors de l'ordre asc et en premier lors de l'ordre desc. Vous pouvez modifier ce comportement en commandant en utilisant nulls first/nulls last .
Dans votre cas particulier, je suppose que vous voulez order by rating desc nulls last
, contrairement au comportement par défaut qui placera les valeurs nulles en premier.