ホームページ >データベース >mysql チュートリアル >MySQL 列に連番を割り当てるにはどうすればよいですか?

MySQL 列に連番を割り当てるにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-02 22:21:38627ブラウズ

How to Assign Sequential Numbers to a MySQL Column?

MySQL でシーケンス番号を使用した列の更新

問題: MySQL テーブルに「Number」という名前の列が含まれています現在、複数の行に null 値が保持されています。タスクは、1 から n の範囲の連続番号でこの列を更新することです。ここで、n は行の合計数を表します。

解決策:

この更新を実行するには単一の SQL コマンドで、SET ステートメントと update ステートメントを組み合わせて使用​​できます。

SQLコマンド:

SET @rank := 0;
update T
set Number = @rank := @rank + 1;

説明:

この SQL コマンドは 2 つの異なる部分で構成されます:

  1. SET @ Rank := 0;: このステートメントは、@rank という名前のユーザー定義変数を 0 に初期化します。
  2. update T set Number = @rank := @rank 1;: この update ステートメントは、Number 列を更新するために使用されます。 @rank は最初は 0 に設定され、その後 T テーブルの行ごとに 1 ずつ増加します。これにより、各行に一意の連続番号が割り当てられるようになります。

代替方法 (1 つのステートメント):

この更新を実行するために利用できる代替アプローチ単一のステートメントでは:

UPDATE T
JOIN (SELECT @rank := 0) r
SET Number = @rank := @rank + 1;

注:

どちらのメソッドも効果的に Number 列を 1 から n までの連続番号で更新します。ここで、n は行の合計数を表します。 T テーブル。

以上がMySQL 列に連番を割り当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。