如何在不使用MAX()的情况下获取ID的最大值

问题描述 投票:0回答:6

我想从表中获取最大id,应该使用max或else等任何函数。我需要简单的纯查询。任何人都可以帮助我解决这个问题。 我们只是简单地写

select max(id) from table

但我不想使用max()

mysql sql select sql-order-by max
6个回答
4
投票

使用

ORDER BY
LIMIT

SELECT id
FROM table
ORDER BY id DESC
LIMIT 1

1
投票

ORDER BYLIMIT 将为您完成工作

 SELECT id FROM table 
 ORDER BY id DESC LIMIT 1;

但是当你从面试的角度提出问题时,他们甚至可能会要求你做同样的事情而不使用 LIMITTOPmax() 。 在这种情况下,您应该使用 subquery 方法。你应该这样做:

  SELECT id FROM table 
  WHERE  id >=  ALL
 (SELECT id FROM table)

在此查询中,一个 id 与表中的所有 id 相匹配,并且仅当该值大于或等于表中的所有 id 时才会打印。只有最大值才能满足条件。


0
投票

使用ORDER BY子句和LIMIT来获取表的最新ID

试试这个:

SELECT id 
FROM table
ORDER BY id DESC 
LIMIT 1;

0
投票

从表中选择 ID ORDER BY id DESC LIMIT 1

这样应该可以了


0
投票

我加了0来解决问题,

select max(id + 0) from table

0
投票

建议:MAX id 不是最好的指标,因为有时表中最新的记录可能已被删除。

如果您需要 MAX id 来进行与此表中下一个插入数据相关的操作,您必须像下面的 sql 语句一样获取自动增量值

SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = queue AND TABLE_SCHEMA = Database();
© www.soinside.com 2019 - 2024. All rights reserved.