ホームページ >データベース >mysql チュートリアル >連続していない値を持つ MySQL プライマリ インデックスの番号を昇順に再番号付けするにはどうすればよいですか?

連続していない値を持つ MySQL プライマリ インデックスの番号を昇順に再番号付けするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-25 11:26:30829ブラウズ

How can I renumber a MySQL primary index with non-sequential values in ascending order?

秩序あるデータのプライマリ インデックスの再番号付け

質問:

次のような MySQL テーブルがあります。値に連続番号が付けられていないプライマリ インデックス。どうすれば順番 (1、2、3、...) に番号を付け直すことができますか?

答え:

他の方法も利用できますが、ここでは別の方法を紹介します。一時テーブルを作成する必要はありません。

解決策:

次の SQL ステートメントを実行します。

<code class="sql">SET @i=0;
UPDATE table_name SET column_name=(@i:=@i+1);</code>

説明:

  • 最初の行は、セッション変数 @i を 0 に初期化します。
  • 2 行目は、table_name という名前のテーブルに対して UPDATE クエリを実行します。
  • UPDATE 内クエリでは、SET 句によって新しい値がプライマリ インデックス列 column_name に割り当てられます。
  • 新しい値は、セッション変数 @i を 1 ずつ増分することによって計算されます。
  • クエリが実行されると、@ i 変数はインクリメントを続け、プライマリ インデックス値が順番に再番号付けされるようにします。

以上が連続していない値を持つ MySQL プライマリ インデックスの番号を昇順に再番号付けするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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