我想根據表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