PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres-Sortierproblem

Ich bin mir nicht sicher, was genau Ihr Problem ist oder wie es "nicht funktioniert", da Ihre Frage keine Details enthält. Aber mindestens zwei Faktoren können die Sortierung so beeinflussen, dass Sie in MySQL und PostgreSQL unterschiedliche Ergebnisse erhalten.

Die erste ist Collation . insbesondere wenn Sie mit 9.1 Beta spielen. Zuletzt habe ich MySQL installiert (was vor einer Weile war, also haben sie das möglicherweise seitdem behoben), es hat die Dinge standardmäßig als latin-1/swedish sortiert, vs. utf-8/english für PostgreSQL.

Der andere ist Nullen. MySQL platziert diese immer zuletzt, wenn der Speicher reicht. Im Gegensatz dazu platziert PostgreSQL sie konsequent am Ende von btree-Indizes und platziert sie daher bei der Reihenfolge asc an letzter Stelle und bei der Reihenfolge desc an erster Stelle. Sie können dieses Verhalten ändern, indem Sie mit nulls first/nulls last .

In Ihrem speziellen Fall vermute ich, dass Sie order by rating desc nulls last bestellen möchten , im Gegensatz zum Standardverhalten, bei dem Nullen an erster Stelle stehen.