当MAX()存在时,select的行为

时间:2018-03-12 07:31:33

标签: sql

Get other columns that correspond with MAX value of one column?

我知道在SELECT时,sql通常会从表中提供所有行(没有WHERE条件)。

但为什么这次sql只提供其他列的第一行数据(video_category,url,...)?

MAX()是否会改变SELECT的行为?

如果是这样,为什么其余列不是从MAX(id)行派生出来的?

1 个答案:

答案 0 :(得分:1)

如果您希望记录中的所有列都具有最大id,那么您将不得不使用子查询:

SELECT *
FROM yourTable
WHERE id = (SELECT MAX(id) FROM yourTable);

您当前的输出只是一条记录,因为当说最大值超过整个表时,您不再说出单个记录。我猜你正在使用MySQL,在这种情况下,你看到的其他列的值是由数据库选择的。但是无法保证选择哪条记录。

某些版本的SQL(例如MySQL,SQL Server),支持LIMIT / TOP功能,可以简化操作。例如,在SQL Server上我们可以写:

SELECT TOP 1 *
FROM yourTable
ORDER BY id DESC;