sql >> Database >  >> RDS >> PostgreSQL

Postgres sorteerprobleem

Ik weet niet zeker wat uw probleem precies is of hoe het "niet werkt", door een gebrek aan details in uw vraag. Maar minstens twee factoren kunnen het sorteren zodanig beïnvloeden dat u verschillende resultaten krijgt in MySQL en PostgreSQL.

De eerste is verzameling . In het bijzonder als je met 9.1 beta speelt. De laatste keer dat ik MySQL installeerde (wat een tijdje geleden was, dus misschien hebben ze dit sindsdien opgelost), het vergeleek dingen standaard als latin-1/zweeds, versus utf-8/engels voor PostgreSQL.

De andere is nul. MySQL plaatst deze altijd als laatste als het geheugen dient. PostgreSQL plaatst ze daarentegen consequent aan het einde van btree-indexen, en plaatst ze dus als laatste bij het bestellen van asc en als eerste bij het bestellen van desc. U kunt dit gedrag wijzigen door te bestellen met nulls eerst/nulls laatst .

In jouw specifieke geval is mijn gok dat je wilt order by rating desc nulls last , in tegenstelling tot het standaardgedrag waarbij nulls eerst worden geplaatst.




  1. Een index maken op een tijdstempel om de query te optimaliseren

  2. Is er een logische reden om verschillende tabelruimte voor indexen te hebben?

  3. PHP mysqli retourneert verkeerde kolommen

  4. Geschat aantal te lezen rijen