ワイズリマインダー

MySQLでレコード内の連番を振りなおす(リナンバー)

MySQLではROW_NUMBERが使えないので、
サブクエリを使って強引にリナンバーする。

テーブル名 → sampleTable
【主キー】のカラム名 → id
【連番】のカラム名 → rank

UPDATE `sampleTable` AS `T1`
      ,(SELECT `id`
              ,@RowNumber:=@RowNumber+1 AS `rank`
          FROM (SELECT @RowNumber:=0) AS `DUMMY`
              ,`sampleTable` AS `T1`
         ORDER BY `name` ASC
       ) `T2`
   SET `T1`.`rank` = `T2`.`rank`
 WHERE `T1`.`id` = `T2`.`id`
;

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

検索

最近のコメント

最近の投稿

タグ

フィード配信

アーカイブ

外部リンク