8

我有一个具有以下结构的表:

身份证 | 颜色

1 | 红
2 | 蓝色
3 | 黄色
8 | 紫
10| 绿色

.
.
100|黄色

我希望能够获取前 5 行的 MAX ID 值。

例如,我想做这样的事情: Select MAX(ID) From Table LIMIT 5

希望这会返回值 10

但是,MySQL 不断返回 100 ......就像 MySQL 甚至没有看到 LIMIT 子句一样。

4

4 回答 4

23

听起来您想选择前 5 条记录(按 ID 排序),然后获取该组的最高值?如果是这样:

SELECT
    MAX(ID)
FROM
    ( 
         SELECT ID 
         FROM YourTable
         ORDER BY ID
         LIMIT 5
    ) as T1 
于 2009-07-19T19:57:47.120 回答
11

有比子选择更好的方法:

SELECT id FROM table LIMIT 4,1

获取一行但先跳过 4 行。如果这是 MyISAM 表,请添加“order by id”。

于 2011-06-02T11:01:12.337 回答
1

使用子选择:

SELECT MAX(id) FROM (SELECT id FROM table LIMIT 5);

这可能不是完全有效的 SQL,但这应该会给您一个大致的概念。

于 2009-07-19T19:54:54.130 回答
-1

如果您有一个具有以下结构的表

ID | Color

1 | red
2 | blue
3 | yellow
8 | purple
10| green
.
.
.
100|yellow

前 5 个(AUTO_INCREMENT?)值的 MAX ID 值为 5。顺便说一句,前 6 个值的 MAX ID 值为 6。所有值均为 100。此致。

于 2017-10-26T02:07:04.770 回答