Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获取表中最高值的SQL查询_Mysql_Sql - Fatal编程技术网

Mysql 获取表中最高值的SQL查询

Mysql 获取表中最高值的SQL查询,mysql,sql,Mysql,Sql,我有一张包含以下信息的表格: ID Name Value === ===== ======= 1 apple 5 2 green 10 3 orange 1 4 blue 0 5 fish 3 6 lettuce 2 7

我有一张包含以下信息的表格:

ID          Name        Value       
===         =====       =======
1           apple       5
2           green       10
3           orange      1
4           blue        0
5           fish        3
6           lettuce     2
7           cabbage     4
8           computer    1
9           car     0
10          sport       9
11          racing      15
我希望能够在这个表中只提取3条最高值的记录。举个例子,我想按这个顺序拉下面的内容

11          racing      15
2           green       10
10          sport       9
我知道我可以使用ORDER BY按值排序,所以它首先给我最高的值。但是我如何查询以仅获取这些记录呢?

您可以按

select * from your_table order by Value desc limit 3
在SQL Server中

SELECT TOP 3 * FROM tablename order by Value DESC

您可以按多列排序。如果我解释您的请求,您可以按值DESC、NAME订购。因此,10的结果仍然是第一个,然后是所有0的结果,按名称的字母顺序排列。

在查询的末尾添加限制3是mysql还是sql server?那么为什么您有sql server标记?我错误地添加了它,我不知道如何在发布后将其取下。我如何才能确定,我有5行,只有1行的值为10,而最后4行的值为0,我可以自动将order by调整为其他字段吗?@BradHazelnut-只需在order by列表的末尾添加更多内容。如果一行为10,其余均为0,那么10将首先出现,然后是其余的。但是您可以自定义订单值,但需要使用case或field()来实现。