比较相同列,不同行中的值 - MySQL

时间:2016-11-16 05:26:58

标签: mysql

假设我有这个学生表:

ID           Name               Age
1            Billy              11
2            Ben                15
3            Ivy                21
4            Alice              30
5            Don                69

如何选择具有最佳年龄的人?我如何获得年龄最小的人?这可能吗?如果我有数百条行,这也可能吗?

输出必须如下:

ID          Name             Age
5           Don              69

我真的需要你的帮助。任何想法?

1 个答案:

答案 0 :(得分:0)

获得年龄最大的学生的一种方法是使用子查询:

SELECT *
FROM Student
WHERE Age = (SELECT MAX(Age) FROM Student)

在这里演示:

SQLFiddle

另一个选择是使用ORDER BYLIMIT

SELECT *
FROM Student
ORDER BY Age DESC
LIMIT 1

<强>更新

正如@strawberry指出的那样,这两个查询并不完全相同。第一个查询将返回所有具有最大年龄的学生,如果最老的学生有平局。但是,即使出现平局,第二个查询也只会返回一条记录。