一千萬個為什麽

搜索

在MySQL中查找具有最大id值的行

看看下面稱為“文章”的MySQL表格:

+----+-----------+---------+------------------------+--------------------------+
| id | articleId | version | title                  | content                  |
+----+-----------+---------+------------------------+--------------------------+
|  1 |         1 | 0.0     | ArticleNo.1 title v0.0 | ArticleNo.1 content v0.0 |
|  2 |         1 | 1.0     | ArticleNo.1 title v1.0 | ArticleNo.1 content v1.0 |
|  3 |         1 | 1.5     | ArticleNo.1 title v1.5 | ArticleNo.1 content v1.5 |
|  4 |         1 | 2.0     | ArticleNo.1 title v2.0 | ArticleNo.1 content v2.0 |
|  5 |         2 | 1.0     | ArticleNo.2 title v1.0 | ArticleNo.2 content v1.0 |
|  6 |         2 | 2.0     | ArticleNo.2 title v2.0 | ArticleNo.2 content v2.0 |
+----+-----------+---------+------------------------+--------------------------+

我試圖想出一個查詢返回Articles.id其中Articles.version是最大數量。

實際的文章表包含超過10,000個條目。

所以在這個例子中,我只想要返回Articles.id 4和6。 我一直在關註關鍵字不同和功能max(),但似乎不能釘住它。

任何建議贊賞...

最佳答案

MySQL手冊,這是個竅門:

SELECT a1.id
FROM Articles a1
LEFT JOIN Articles a2 ON a1.articleId = a2.articleId AND a1.version < a2.version
WHERE a2.articleId IS NULL;

查看理由的鏈接。

轉載註明原文: 在MySQL中查找具有最大id值的行