PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Проблем със сортирането на Postgres

Не сте сигурни какъв точно е проблемът ви или как „не работи“ поради липса на подробности във въпроса ви. Но поне два фактора могат да повлияят на сортирането по такъв начин, че да получите различни резултати в MySQL и PostgreSQL.

Първият е колекция . По-специално ако играете с 9.1 бета. Последно, когато инсталирах MySQL (което беше преди известно време, така че може да са поправили това оттогава), той събираше нещата като latin-1/swedish по подразбиране, срещу utf-8/english за PostgreSQL.

Другото е нули. MySQL винаги поставя тези последни, ако не ме лъже паметта. Обратно, PostgreSQL последователно ги поставя в края на индексите на btree и по този начин ги поставя последни, когато подреждат asc, и първи, когато подреждат desc. Можете да промените това поведение, като подредите с помощта на nulls първи/nulls последни .

Във вашия конкретен случай предполагам, че искате да order by rating desc nulls last , за разлика от поведението по подразбиране, което първо ще постави нули.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какъв е редът на записите в таблица със съставен първичен ключ

  2. Използване на една и съща колона няколко пъти в клаузата WHERE

  3. PostgreSQL:Създаване на индекс за дължината на всички полета на таблицата

  4. Вземете стойности от първия и последния ред за група

  5. Приложението Django в контейнера на Docker не може да намери postgres