2016-07-24 35 views
0

我想根据表x上的number列中存在的最大数来获取一行中的id如何获得MySQL中列的最大数量

例如: 我在x表内有以下记录。

id  | number 
---------+--------- 
9  | 289  
10  | 100  
24  | 187  
54  | 345  

我想查询通过找出该最大列number的是345idSELECT x.id ...)返回。

我该如何成功?

回答

1

请尝试以下查询:

解决方案#1:

SELECT 
x.* 
FROM x 
INNER JOIN 
(
    SELECT 
    MAX(number) AS max_number 
    FROM x 
) AS maxTable 
ON x.number = maxTable.max_number 

说明:

SELECT 
    MAX(number) AS max_number 
FROM x; 

结果:

maxTable:

max_number 
    345 

现在做出inner join你的表xmaxTable.max_numberx.number命名maxTable上表之间。

X表:

===================== 
    | id  | number | 
    ===================== 
    | 9  | 289  | 
    --------------------- 
    | 10  | 100  | 
    --------------------- 
    | 24  | 187  | 
    --------------------- 
    | 54  | 345  | 
    --------------------- 

因此,在最终输出你会得到仅在其numbermaxTable.max_number的条目。

解决方案2:

您可以使用WHERE IN太做到这一点。

SELECT 
* 
FROM x 
WHERE x.number IN (SELECT MAX(number) FROM x) 
+0

这是正确的答案。感谢您的快速回复! – gkanellis

0

你为什么不这样做,因为:

select t.id 
from t 
order by number desc 
limit 1;