タイムスタンプ付きの行を持つテーブルがあります: たとえば、著者のフィードがあります:
CREATE TEMPORARY TABLE `feed` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`author` VARCHAR(255) NOT NULL,
`tm` DATETIME NOT NULL
);
並べ替えたいのですtm DESC
が、1人の著者の行がくっつくようにします。
たとえば、
INSERT INTO `feed` VALUES
( 5, 'peter', NOW()+1 ),
( 4, 'helen', NOW()-1 ),
( 3, 'helen', NOW()-2 ),
( 2, 'peter', NOW()-10 ),
( 1, 'peter', NOW()-11 );
結果セットは でソートする必要がありますが、ピーターの投稿は最新のものであるため、ピーターtm DESC
の投稿はすべて最初に表示されます。次の行セットは、2 番目に新しい投稿から始まる必要があります。等々。author
5 peter
2 peter
1 peter
3 helen
2 helen
まず、作成者を最近の投稿で降順に並べ替えます。次に、この「評価」を使用して、最近の投稿でソートされた作成者でフィードをソートします。