1

在 MYSQL 查询中,如何选择值最高的所有行,例如:

SELECT      UNIX_TIMESTAMP(creation_date) AS `date`,
            release_version
FROM        content
WHERE       id = '1' 
ORDER BY    `date` DESC

这将输出例如:

输出

注意:相同/不同的行数release_version是可变的,因此我不能使用 LIMIT。

我只想选择那些release_version最高的(在这种情况下为 3)

我怎样才能做到这一点?谢谢。

4

2 回答 2

4

这可以简单地为

SELECT * 
FROM   content
WHERE  release_version = (SELECT MAX(release_version) FROM content)
于 2013-05-04T09:05:47.013 回答
1

使用 HAVING 分句。

SELECT      UNIX_TIMESTAMP(creation_date) AS `date`,
        MAX(`release_version`) as max,
FROM        content
WHERE       id = '1' 
HAVING max > 3
ORDER BY    `date` DESC

编辑

或者你可以使用

SELECT      UNIX_TIMESTAMP(creation_date) AS `date`,
       `release_version` as max,
FROM        content
WHERE       id = '1' AND release_version = (SELECT MAX(`release_version`) FROM content WHERE id = '1')
ORDER BY    `date` DESC
于 2013-05-04T09:01:20.530 回答