ホームページ > データベース > mysql チュートリアル > MySQL `ORDER BY` クエリで特定のエントリの行位置を取得する方法

MySQL `ORDER BY` クエリで特定のエントリの行位置を取得する方法

DDD
リリース: 2025-01-18 02:21:08
オリジナル
636 人が閲覧しました

How to Get the Row Position of a Specific Entry in a MySQL `ORDER BY` Query?

MySQL の行位置を選択 ORDER BY クエリ

idname の 2 つの列を持つ MySQL テーブルがあり、目的は 1 つの行と、name 列で昇順にソートされたテーブル内のその位置を取得することであるとします。望ましい結果の形式は、列 idposition、および name を含むテーブルです。

これを行うには、ユーザー変数と組み合わせたサブクエリを使用できます。

<code class="language-sql">SELECT x.id,
       x.position,
       x.name
  FROM (SELECT t.id,
               t.name,
               @rownum := @rownum + 1 AS position
          FROM TABLE t
          JOIN (SELECT @rownum := 0) r
      ORDER BY t.name) x
 WHERE x.name = 'Beta';</code>
ログイン後にコピー

このクエリでは、サブクエリは name 値の順序に基づいて各行の位置を計算します。ユーザー定義変数 @rownum は、一意の位置を割り当てるために使用されます。次に、メイン クエリは結果をフィルター処理して、目的の name 値「Beta」を取得します。

また、次のクエリは、同じ名前のケースを解決するランキングを提供します:

<code class="language-sql">SELECT t.id,
       (SELECT COUNT(*)
          FROM TABLE x
         WHERE x.name <= t.name) AS position,
       t.name
  FROM TABLE t
 WHERE t.name = 'Beta';</code>
ログイン後にコピー

このクエリは、現在の行の name 値以下の name 値を持つ行の数を数えることによって位置を計算します。どちらのメソッドも、並べ替えられた結果セット内の行の位置を決定する方法を提供します。

以上がMySQL `ORDER BY` クエリで特定のエントリの行位置を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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