Rails: последний заказ с нулями - PullRequest
72 голосов
/ 29 апреля 2011

В моем приложении на Rails я пару раз сталкивался с проблемой, которую я хотел бы знать, как другие люди решают:

У меня есть определенные записи, где значение является необязательным, поэтому некоторые записи имеютзначение, а некоторые являются пустыми для этого столбца.

Если я упорядочиваю по этому столбцу в некоторых базах данных, сначала сортируются нули, а в некоторых базах сортируются нули в конце.

Например, у меня есть фотографии, которыеможет принадлежать или не принадлежать коллекции, то есть есть некоторые фотографии, где collection_id=nil, а некоторые - где collection_id=1 и т. д.

Если я сделаю Photo.order('collection_id desc), то в SQLite я получаю нулевые значения последними, но в PostgreSQL Iсначала получите пустые значения.

Есть ли хороший, стандартный способ Rails справиться с этим и получить согласованную производительность для любой базы данных?

Ответы [ 11 ]

0 голосов
/ 29 апреля 2011

Кажется, что вам придется делать это в Ruby, если вы хотите получить согласованные результаты для разных типов баз данных, поскольку сама база данных интерпретирует, идут ли значения NULLS в начале или конце списка.

Но это не очень эффективно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...