それはインデックスの問題であることが判明しました。クエリのNULLS動作は、インデックスと一貫性がありませんでした。
CREATE INDEX message_created_at_idx on message (created_at DESC NULLS LAST);
... ORDER BY message.created_at DESC; -- defaults to NULLS FIRST when DESC
ソリューション
インデックスまたはクエリでNULLSを指定する場合は、それらが互いに一貫していることを確認してください。
すなわち:ASC NULLS LAST
ASC NULLS LAST
と一貫性があります またはDESC NULLS FIRST
。
最後のNULL
CREATE INDEX message_created_at_idx on message (created_at DESC NULLS LAST);
... ORDER BY messsage.created_at DESC NULLS LAST;
NULLを最初に
CREATE INDEX message_created_at_idx on message (created_at DESC); -- defaults to NULLS FIRST when DESC
... ORDER BY messsage.created_at DESC -- defaults to NULLS FIRST when DESC;
NOT NULL
列がNULLでない場合は、NULLを気にしないでください。
CREATE INDEX message_created_at_idx on message (created_at DESC);
... ORDER BY messsage.created_at DESC;