mysql では、SELECT ステートメントを使用してユーザー変数を定義し、クエリ結果にシリアル番号を追加できます。構文は「SELECT フィールド 1, フィールド 2, (@i:=@i 1) AS '」です。シリアル番号' FROM テーブル名、(SELECT @i:=0) AS itable;"。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
一般的な解決策は、ユーザー変数を定義してシリアル番号を生成することです
例: データベースに Student テーブルがあるとします
テーブルにはフィールドがあります: sid、sname、gender、age
テーブル内のデータをクエリし、シリアル番号を追加します。対応する SQL は次のとおりです:
SELECT sid,sname,gender,age,(@i:=@i+1) AS '序号' FROM student,(SELECT @i:=0) AS itable;
または
SET @i=0; SELECT sid,sname,gender,age,@i:=@i+1 AS '序号' FROM student;
クエリ結果は次の図に示されています:
説明:
1, (@i:= @i 1) は @i: =@i 1 と書くこともできます。見やすくするために括弧が追加されています。
意味は次のとおりです: 変数 i に 1 を加算し、変数 i に代入します。変数を定義した後、クエリを実行するたびに変数がインクリメントされます。この変数はクエリ ステートメントを実行するたびに必要ではありません
2, (SELECT @i:=0) AS itable を追加し、ユーザー変数 i を定義し、初期値を 0 に設定し、それを派生テーブルとして使用します。AS はエイリアスを定義しますテーブルの。
3. @i=0 を設定します。ユーザー変数 i を定義し、初期値を 0 に割り当てます。
関連知識ポイント:
1. MySQL によるユーザー変数の定義方法: @変数名を選択します。上記の SQL ステートメントでは、変数の名前が変数 はい i
2. ユーザー変数の割り当て: 1 つは「=」記号を直接使用する方法、もう 1 つは「:=」記号を使用する方法です。
= と :=:
set コマンドを使用してユーザー変数に値を割り当てる場合、どちらの方法も使用できます。
つまり、SET @変数名=xxx または SET @変数名:=xxx
select ステートメントを使用してユーザー変数に値を割り当てる場合は、「:=」メソッドのみを使用できます。これは、select ステートメントでは、 「=」記号は比較演算子とみなされます。つまり、 SELECT @変数名:=xxx
①: ユーザー変数
②: 派生テーブル
③: AS 設定エイリアス
が記述されていますOracle はい:
SELECT "sid","sname","gender","age", ROW_NUMBER() over(order by "sid") AS "序号" FROM "user";
推奨学習: mysql ビデオ チュートリアル
以上がmysqlでクエリにシリアル番号を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。