我有一个具有以下结构的表:
身份证 | 颜色
1 | 红
2 | 蓝色
3 | 黄色
8 | 紫
10| 绿色
。
.
.
100|黄色
我希望能够获取前 5 行的 MAX ID 值。
例如,我想做这样的事情: Select MAX(ID) From Table LIMIT 5
希望这会返回值 10
但是,MySQL 不断返回 100 ......就像 MySQL 甚至没有看到 LIMIT 子句一样。
听起来您想选择前 5 条记录(按 ID 排序),然后获取该组的最高值?如果是这样:
SELECT
MAX(ID)
FROM
(
SELECT ID
FROM YourTable
ORDER BY ID
LIMIT 5
) as T1
有比子选择更好的方法:
SELECT id FROM table LIMIT 4,1
获取一行但先跳过 4 行。如果这是 MyISAM 表,请添加“order by id”。
使用子选择:
SELECT MAX(id) FROM (SELECT id FROM table LIMIT 5);
这可能不是完全有效的 SQL,但这应该会给您一个大致的概念。
如果您有一个具有以下结构的表
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。此致。