distinct
キーワードは、本来の機能を実行することです。指定された列値でそれぞれ1行を返します。 Distinctでは、どのを指定することはできません。 そのような行が返され、元のクエリから、そのような順序付けが許可されていることが明らかです(ID429の行の後にID443の行が続きます)。
返される行を制御するには、クエリを再定式化する必要があります。私が取る典型的な解決策は、group by
を使用することです。 、各グループからグループ列と目的の行を選択すると、効果があります
SELECT message.id, MAX(message.created_at) FROM message GROUP BY message.id;
さらに多くのことを行う必要がある場合は、この種のクエリをより大きなクエリの副選択として使用します。おそらく、idフィールドに結合して、優先行からより多くのフィールドを取得するか、特定の方法でクエリを並べ替えます。
>