ホームページ > データベース > mysql チュートリアル > MySQL でソートされた SELECT 結果に行番号を追加するにはどうすればよいですか?

MySQL でソートされた SELECT 結果に行番号を追加するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-22 00:08:11
オリジナル
490 人が閲覧しました

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

MySQL: ソートされた SELECT 結果から行番号を取得します

質問:

MySQL の SELECT ステートメントでソートされた項目の行番号を取得するにはどうすればよいですか?

背景:

列「orderID」と「itemID」を含む「orders」というテーブルについて考えてみましょう。以下に示すクエリは、「itemID」によって注文数量を計算します:

SELECT itemID, COUNT(*) as ordercount
FROM orders
GROUP BY itemID
ORDER BY ordercount DESC;
ログイン後にコピー

このクエリは項目数を返しますが、行番号は返しません。

解決策:

行番号を取得するには、次の手法を使用します:

  1. 現在の行番号を保存する変数を初期化します:
SET @rank=0;
ログイン後にコピー
  1. 変数を使用して行番号を割り当てるように元のクエリを変更します:
SELECT @rank:=@rank+1 AS rank, itemID, COUNT(*) as ordercount
FROM orders
GROUP BY itemID
ORDER BY ordercount DESC;
ログイン後にコピー
  1. 別の SELECT ステートメントを実行して、最終的な行数を取得します:
SELECT @rank;
ログイン後にコピー

例:

次のクエリは行番号と項目数を返します:

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>1 | 388 | 3
2 | 234 | 2
3 | 693 | 1
4 | 3432 | 1
5 | 3459 | 1</code>
ログイン後にコピー

最終行数は 5 です。

以上がMySQL でソートされた SELECT 結果に行番号を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート