我想根据表x
上的number
列中存在的最大数来获取一行中的id
。如何获得MySQL中列的最大数量
例如: 我在x
表内有以下记录。
id | number
---------+---------
9 | 289
10 | 100
24 | 187
54 | 345
我想查询通过找出该最大列number
的是345id
(SELECT x.id ...
)返回。
我该如何成功?
我想根据表x
上的number
列中存在的最大数来获取一行中的id
。如何获得MySQL中列的最大数量
例如: 我在x
表内有以下记录。
id | number
---------+---------
9 | 289
10 | 100
24 | 187
54 | 345
我想查询通过找出该最大列number
的是345id
(SELECT x.id ...
)返回。
我该如何成功?
请尝试以下查询:
解决方案#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
你的表x
和maxTable.max_number
和x.number
命名maxTable
上表之间。
X表:
=====================
| id | number |
=====================
| 9 | 289 |
---------------------
| 10 | 100 |
---------------------
| 24 | 187 |
---------------------
| 54 | 345 |
---------------------
因此,在最终输出你会得到仅在其number
列maxTable.max_number
的条目。
解决方案2:
您可以使用WHERE IN
太做到这一点。
SELECT
*
FROM x
WHERE x.number IN (SELECT MAX(number) FROM x)
你为什么不这样做,因为:
select t.id
from t
order by number desc
limit 1;
这是正确的答案。感谢您的快速回复! – gkanellis