通常のテーブルの自動インクリメントと同様に、行番号が挿入されるrow_numという名前の列を持つビューを作成する必要があります。
この通常のテーブルがあるとしましょう:
| country | name | age | price |
--------------------------------
| US | john | 22 | 20 |
| France | Anne | 10 | 15 |
| Sweden | Alex | 49 | 10 |
等々...
作成したいビューは次のとおりです。
| country | name | price | row_num |
------------------------------------
| US | john | 20 | 1 |
| France | Anne | 10 | 2 |
| Sweden | Alex | 5 | 3 |
等々...
単一の選択でrow_numを生成できます:
SELECT @i:=@i+1 AS row_num, testing.country, testing.name, testing.price
FROM testing testing,(SELECT @i:=0) derivedTable
order by name
しかし、私の問題は、上記のクエリをビューを作成するクエリと組み合わせることです。これは私が試している複合クエリです:
CREATE OR REPLACE view vwx (country, name, price, num_row) AS SELECT mytable.country, mytable.name, mytable.price, @i:=@i+1 AS row_number
FROM testing testing,(SELECT @i:=0) derivedTable
order by name;
次のエラーが表示されます: #1351 - ビューの SELECT に変数またはパラメーターが含まれています
ビューで選択内で選択を使用できないことはわかっていますが、このビューを希望どおりに実行する他の方法はわかりませんが、これを行う方法があると確信していますが、わかりませんどうやって。おそらく関数またはプロシージャを使用しますが、私はそれらに本当に慣れていないため、mysql で関数またはプロシージャを作成することに慣れていません。
それ以外の場合は、さらに詳細に説明させていただきます。