MySQLで連番のカラムを作成する

いつ使うの?

  • AUTO_INCREMENTのidとは別に仮の連番をMySQLで生成したいとき

前提

↓みたいなテーブルにMySQLで生成した連番のidを追加する

id category
4291 アニメ
11 映画
9302 漫画
322 ドラマ

SQL

SELECT
    category,
    @tmp_id := @tmp_id + 1 tmp_id
FROM
    (
SELECT
    @tmp_id := 0
FROM DUAL
) tmp, samples

結果

id category tmp_id
4291 アニメ 1
11 映画 2
9302 漫画 3
322 ドラマ 4

こんな処理を使わなきゃいけない場合はだいたい設計がおかしいから見直そうな!