从mysql中的修订表中获取最新条目

时间:2014-01-22 13:11:20

标签: mysql sql database

我有一个修订数据库表,在网站(webId)下有多个页面修订版(pageId)。我想编写一个查询来获取网站的最新修订版。例如,下表显示了两个带有id的文件1和2,现在我想得到修订号101和104,因为它们是各自页面的最新版本。我正在使用 mysql

+----+---------+-------------+---------------------+-------+---------------------+
| id | userId  | webId       |revisionCont         | pageId| dateUpdated         |
+----+---------+-------------+---------------------+-------+---------------------+
| 100|       1 |           2 | some text           | 1     | 2014-01-07 08:00:00 |
| 101|       1 |           2 | some text           | 1     | 2014-01-07 08:01:00 |
| 103|       2 |           2 | some text           | 2     | 2014-01-07 08:15:32 |
| 104|       2 |           2 | some text           | 2     | 2014-01-07 09:10:32 |
+----+---------+-------------+---------------------+-------+---------------------+

我无法弄清楚我该怎么做?有人可以指导我吗?

4 个答案:

答案 0 :(得分:4)

试试这个

 SELECT max(id) id FROM revision 
 GROUP BY pageId

DEMO HERE

输出:

ID
104
101

编辑:如果您需要过滤或订购输出,则只需添加ORDER BY dateUpdated DESC

答案 1 :(得分:3)

SELECT MAX(id) id FROM revision GROUP BY pageId

应该这样做。

答案 2 :(得分:3)

要获得完整的行,请执行以下操作:

SELECT * FROM revision WHERE Id IN (
  SELECT MAX(id) FROM revision GROUP BY pageId ORDER BY dateUpdated DESC
)

答案 3 :(得分:2)

以下是查询示例:

SELECT id FROM revision GROUP BY pageId ORDER BY dateUpdated DESC

它将获取每个pageId的所有记录ID(101和104),按dateUpdated(降序)排序