我想从表中获取最大id,应该使用max或else等任何函数。我需要简单的纯查询。任何人都可以帮助我解决这个问题。 我们只是简单地写
select max(id) from table
但我不想使用max()
使用
ORDER BY
和 LIMIT
SELECT id
FROM table
ORDER BY id DESC
LIMIT 1
ORDER BY 和 LIMIT 将为您完成工作
SELECT id FROM table
ORDER BY id DESC LIMIT 1;
但是当你从面试的角度提出问题时,他们甚至可能会要求你做同样的事情而不使用 LIMIT , TOP 或 max() 。 在这种情况下,您应该使用 subquery 方法。你应该这样做:
SELECT id FROM table
WHERE id >= ALL
(SELECT id FROM table)
在此查询中,一个 id 与表中的所有 id 相匹配,并且仅当该值大于或等于表中的所有 id 时才会打印。只有最大值才能满足条件。
使用ORDER BY子句和LIMIT来获取表的最新ID
试试这个:
SELECT id
FROM table
ORDER BY id DESC
LIMIT 1;
从表中选择 ID ORDER BY id DESC LIMIT 1
这样应该可以了
我加了0来解决问题,
select max(id + 0) from table
建议:MAX id 不是最好的指标,因为有时表中最新的记录可能已被删除。
如果您需要 MAX id 来进行与此表中下一个插入数据相关的操作,您必须像下面的 sql 语句一样获取自动增量值
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = queue AND TABLE_SCHEMA = Database();