アイテムモデルにowns_countcounter_cacheがあります。私がする時
Items.order("owns_cache DESC")
、他の結果の前にnilであるオブジェクトを返します。私が行った場合
"owns_cache ASC"
、 合ってます。
私は何をすべきですか?
アイテムモデルにowns_countcounter_cacheがあります。私がする時
Items.order("owns_cache DESC")
、他の結果の前にnilであるオブジェクトを返します。私が行った場合
"owns_cache ASC"
、 合ってます。
私は何をすべきですか?
NULLがどのように順序付けられるかは、基盤となるデータベースによって異なります。
PostgreSQLの場合、これを行うことができます。
Items.order("owns_cache DESC NULLS LAST")
MySQLおよびSQLiteの場合:
Items.order("COALESCE(owns_cache, 0) DESC")
MySQLはDESCの順序の最後でNULLをソートすると思いますが、特別なことは何も必要ないかもしれません。このCOALESCEアプローチはPostgreSQLでも機能するため、どこでも一貫した結果が得られるポータブルソリューションになります。
ASCソートの下部にNULLが必要な場合は、を最大数0
よりも大きいものに置き換えます。owns_cache