PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Problema di smistamento Postgres

Non sono sicuro di quale sia esattamente il tuo problema o di come "non funzioni", per mancanza di dettagli nella tua domanda. Ma almeno due fattori possono influenzare l'ordinamento in modo tale da ottenere risultati diversi in MySQL e PostgreSQL.

Il primo è collation . In particolare se stai giocando con 9.1 beta. L'ultima volta che ho installato MySQL (che è stato qualche tempo fa, quindi potrebbero averlo risolto da allora), stava raccogliendo le cose come latin-1/swedish per impostazione predefinita, rispetto a utf-8/english per PostgreSQL.

L'altro è nullo. MySQL li colloca sempre per ultimi se la memoria serve. Al contrario, PostgreSQL li colloca costantemente alla fine degli indici btree, e quindi li posiziona per ultimi quando si ordina asc e per primi quando si ordina desc. Puoi modificare questo comportamento ordinando utilizzando nulls first/nulls last .

Nel tuo caso particolare, suppongo che tu voglia order by rating desc nulls last , al contrario del comportamento predefinito che inserirà prima i valori null.