Hóa ra là một vấn đề về chỉ mục. Hành vi NULLS của truy vấn không nhất quán với chỉ mục.
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
giải pháp
Nếu bạn chỉ định NULLS trong chỉ mục hoặc truy vấn của mình, hãy đảm bảo rằng chúng nhất quán với nhau.
tức là:ASC NULLS LAST
nhất quán với ASC NULLS LAST
hoặc DESC NULLS FIRST
.
CUỐI CÙNG
CREATE INDEX message_created_at_idx on message (created_at DESC NULLS LAST);
... ORDER BY messsage.created_at DESC NULLS LAST;
LẦN ĐẦU TIÊN
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;
KHÔNG ĐẦY ĐỦ
Nếu cột của bạn KHÔNG ĐẦY ĐỦ, đừng bận tâm với NULLS.
CREATE INDEX message_created_at_idx on message (created_at DESC);
... ORDER BY messsage.created_at DESC;