Get other columns that correspond with MAX value of one column?
我知道在SELECT时,sql通常会从表中提供所有行(没有WHERE条件)。
但为什么这次sql只提供其他列的第一行数据(video_category,url,...)?
MAX()是否会改变SELECT的行为?
如果是这样,为什么其余列不是从MAX(id)行派生出来的?
答案 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;