MySQL SELECT クエリでのカウンターのインクリメント
MySQL では、ユーザーが特定のカラムを選択し、単一のクエリ内でその値をインクリメントできます。これは、一意の識別子の作成や検索結果のランク付けに特に役立ちます。
次の MySQL クエリがあるとします。
SELECT name FROM table;
このクエリは、指定されたテーブルから name カラムを取得するだけです。ただし、以下に示すように、名前の横に増加するカウンターも追加したいと考えています。
Jay 1 roy 2 ravi 3 ram 4
これを実現するには、クエリ内で @rownum := @rownum 1 構文を利用できます。その仕組みは次のとおりです。
select name, @rownum := @rownum + 1 as row_number from your_table cross join (select @rownum := 0) r order by name
クロス結合ステートメントでは @rownum 変数が導入されており、サブクエリ select @rownum := 0) r を使用してこの変数を 0 に初期化します。 @rownum := @rownum 1 構文は、your_table テーブル内の各行のカウンターをインクリメントします。
その結果、クエリはテーブル内の各行のインクリメントされた row_number カウンターとともに name 列を返します。
このアプローチでは、@rownum 変数を宣言するために別のクエリを必要としないことに注意してください。さらに、この手法は @rownum 変数を手動で 0 に設定することでストアド プロシージャでも使用できます。
以上がMySQL でデータを選択しているときにカウンターをインクリメントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。