繁体   English   中英

MySQL查询记录在特定列中具有最大值

[英]MySQL query record with max value in a specific column

我知道这肯定是一个非常基本的问题,但是我没有找到答案。

有标题说,我想查询包含特定列最大值的记录。

我使用以下代码实现这一目标:

SELECT * FROM `table_name` ORDER BY `column_with_specific_max_value` DESC LIMIT 1

我想知道是否还有另一种方法可以达到相同的结果(更简约)? 我知道SQL有一个函数MAX(column),但是它不能按我想要的方式工作。 我尝试了这个:

SELECT * FROM `table_name` WHERE `column_with_specific_max_value`=MAX(`column_with_specific_max_value`)

和这个:

SELECT *, MAX(`column_with_specific_max_value`) FROM `table_name`

如果column_with_specific_max_value具有2个具有相同最大值的行会发生什么? 它会返回两行吗?

关于什么?

select * from table1
where score in (select max(score) from table1)

甚至没有max

select * from table1
where score >= all (select score from table1)

那些将返回具有最大值的所有行。 你可以在这里玩。

如果您的表有一个自动递增的列可以使用,您可以执行以下操作...

select
      YT3.*
   from
      ( select
              MAX( YT2.AutoIncColumn ) as ReturnThisRecordID
           from
              ( select max( YT1.WhatColumn ) as MaxColumnYouWant
                   from YourTable YT1 ) JustMax
                 Join YourTable YT2
                    on JustMax.MaxColumnYouWant = YT2.WhatColumn ) FinalRecord
      JOIN YourTable YT3
         on FinalRecord.ReturnThisRecordID = YT3.AutoIncColumn

我还要确保这是应该在其上有索引的列,否则,您将始终进行表扫描。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM