Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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,假设我有一个表,其中有两个字段,name和number(我只是在这里提出我的问题前提),并假设我返回的行中有最大的数字。如果我使用命令 SELECT name, MAX(number) FROM tablename; 但是,如果我有两个或更多这样的行,它们的最大数字,我如何修改上述查询以获得所有行 EDIT:我希望它返回可能找到最大值的所有行,而不仅仅是其中一行,并且它应该与正确的名称正确关联。使用where子句: select t.* from tablename t where t.num

假设我有一个表,其中有两个字段,namenumber(我只是在这里提出我的问题前提),并假设我返回的行中有最大的数字。如果我使用命令

SELECT name, MAX(number) FROM tablename;
但是,如果我有两个或更多这样的行,它们的最大数字,我如何修改上述查询以获得所有行


EDIT:我希望它返回可能找到最大值的所有行,而不仅仅是其中一行,并且它应该与正确的名称正确关联。

使用
where
子句:

select t.*
from tablename t
where t.number = (select max(number) from tablename);
顺便说一下,您的查询只返回最大值。它为
name
返回任意值,该值可以来自任何行

如果只需要一个值,则应使用:

select t.*
from tablename
order by number desc
limit 1;

您需要使用GROUPBY子句,以便将max number与适当的名称关联。希望这对你有用

select
    name, max(number)
from
    yourtable
group by
    name

我希望它返回所有可能找到最大值的行,而不仅仅是其中一行,并且它应该与正确的名称正确关联。@SoulRayder。这就是第一个查询所做的。这将给出表中每个名称的最大值。这不是他所要求的吗?请参阅问题编辑中的“它应与正确的名称正确关联”语句。谢谢。他想要所有有最大值的名字。不是所有名称的最大值。那完全不同。哦,好的。那么我想@Gordon的第一个查询应该给出正确的结果,我想只需要在那里添加一个“selectdistinct t.*”。