首頁 >資料庫 >mysql教程 >如何在 MySQL 中為排序的 SELECT 結果新增行號?

如何在 MySQL 中為排序的 SELECT 結果新增行號?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-22 00:08:11411瀏覽

How to Add Row Numbers to Sorted SELECT Results in MySQL?

MySQL:從排序的SELECT結果擷取行號

問題:

如何在MySQL的SELECT語句中取得排序項的行號?

背景:

考慮一個名為'orders'的表,包含列'orderID'和'itemID'。如下所示的查詢按'itemID'計算訂單數量:

<code class="language-sql">SELECT itemID, COUNT(*) as ordercount
FROM orders
GROUP BY itemID
ORDER BY ordercount DESC;</code>

此查詢傳回項目計數,但不提供行號。

解:

要擷取行號,請使用下列技術:

  1. 初始化一個變數來儲存目前行號:
<code class="language-sql">SET @rank=0;</code>
  1. 修改原始查詢以使用變數分配行號:
<code class="language-sql">SELECT @rank:=@rank+1 AS rank, itemID, COUNT(*) as ordercount
FROM orders
GROUP BY itemID
ORDER BY ordercount DESC;</code>
  1. 執行另一個SELECT語句以擷取最終的行計數:
<code class="language-sql">SELECT @rank;</code>

範例:

以下查詢返回行號和項目計數:

<code class="language-sql">SET @rank=0;
SELECT @rank:=@rank+1 AS rank, itemID, COUNT(*) as ordercount
  FROM orders
  GROUP BY itemID
  ORDER BY ordercount DESC;
SELECT @rank;</code>

輸出:

<code>1 | 388 | 3
2 | 234 | 2
3 | 693 | 1
4 | 3432 | 1
5 | 3459 | 1</code>

最終行計數為5。

以上是如何在 MySQL 中為排序的 SELECT 結果新增行號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn