MySQL: ソートされた SELECT 結果から行番号を取得します
質問:
MySQL の SELECT ステートメントでソートされた項目の行番号を取得するにはどうすればよいですか?
背景:
列「orderID」と「itemID」を含む「orders」というテーブルについて考えてみましょう。以下に示すクエリは、「itemID」によって注文数量を計算します:
SELECT itemID, COUNT(*) as ordercount FROM orders GROUP BY itemID ORDER BY ordercount DESC;
このクエリは項目数を返しますが、行番号は返しません。
解決策:
行番号を取得するには、次の手法を使用します:
SET @rank=0;
SELECT @rank:=@rank+1 AS rank, itemID, COUNT(*) as ordercount FROM orders GROUP BY itemID ORDER BY ordercount DESC;
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 サイトの他の関連記事を参照してください。