[英]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.