ここに私のmysqlクエリがあります
select name from table;
サイド名に沿って増分カウンターを選択したい。これを行う方法。期待される出力は
Jay 1
roy 2
ravi 3
ram 4
select name,
@rownum := @rownum + 1 as row_number
from your_table
cross join (select @rownum := 0) r
order by name
この部分:
cross join (select @rownum := 0) r
別のクエリを必要とせずに変数を導入することができます。したがって、最初のクエリは次のような2つのクエリに分割することもできます。
set @rownum := 0;
select name,
@rownum := @rownum + 1 as row_number
from your_table
order by name;
たとえば、ストアドプロシージャで使用する場合。
MySQL 8以降では、 ROW_NUMBER()
Window function も使用できます。
SELECT
name,
ROW_NUMBER() OVER ()
FROM table
結果:
Jay 1
roy 2
ravi 3
ram 4
Juergen dが示すように、ORDER BY
確定的なクエリを使用します。
ORDER BY
は、クエリとカウンタに個別に適用できます。そう:
SELECT
name,
ROW_NUMBER() OVER (ORDER BY name DESC)
FROM table
ORDER BY name
降順でカウンターが表示されます。
結果:
Jay 4
ram 3
ravi 2
roy 1