2

基本的に、ID と日付が送信されたコメント付きの MySQL テーブルがあり、ユーザーがこれらのコメントを編集できるようにしたいと考えています。コメントが編集されたら、編集中のコメントと同じ ID で新しい日付のテーブルに新しいエントリを作成したいと思います。

したがって、コメントのリストを選択するときは、 SELECT MAX( DateSubmitted) ... Group Byを使用したいのですIDが、それぞれにグループ化された ID の数も取得したいので、コメントが編集された回数。

私はそれが次のようなものであるべきだと思います:

SELECT ID, COUNT(1) as "Number of edits"
FROM comments
GROUP BY ID;

合併:

SELECT ID, MAX(`DateSubmitted`), Comment
FROM comments
GROUP BY ID;
4

2 に答える 2

4

最新のコメント テキストだけでなく、編集された日付とカウントを取得する場合:

SELECT a.ID, a. MaxDateSubmitted, a.NumComments, b.Comment
(SELECT ID, 
        MAX(`DateSubmitted`) as "MaxDateSubmitted", 
        COUNT('ID') as "NumComments"
FROM comments
GROUP BY ID) a
INNER JOIN comments b ON a.ID = b.ID and b.DateSubmitted = a.MaxDateSubmitted;

: これは、2 つの編集の日付と時刻がまったく同じではないことを前提としています (時刻部分の精度まで)。しかし、この場合、これは有効な仮定だと思います。

最新の編集日とカウントだけが必要な場合:

 SELECT ID, 
        MAX(`DateSubmitted`) as "MaxDateSubmitted", 
        COUNT('ID') as "NumComments"
 FROM comments
 GROUP BY ID
于 2013-02-16T01:33:52.680 に答える
2
SELECT ID, COUNT(ID) as "Number of edits", MAX(`DateSubmitted`)
FROM comments
GROUP BY ID;
于 2013-02-16T01:32:34.830 に答える