MySQL Row_number()関数:順位付けの基本と実践
MySQLには、ROW_NUMBER()関数が組み込まれていませんが、ユーザー定義変数を使用してそれをシミュレートすることができます。以下はその例です:
SELECT
@row_number:=@row_number+1 AS row_number,
column1,
column2
FROM
your_table
CROSS JOIN (SELECT @row_number:=0) AS t
ORDER BY column1;
上記の例では、まずCROSS JOIN(SELECT @row_number:=0) AS tを使用してユーザー定義変数@row_numberを初期化し、SELECT文で使用して行番号をシミュレートします。@row_numberをインクリメントして行番号を生成し、ROW_NUMBER()関数のような機能を実現します。最後に、結果セットを特定の列でソートすることで、行番号が指定された順序で生成されることを保証します。