2

アプリケーションに順序付けられた一連のフィールドがあるプロジェクトに取り組んでいます。さらに、フィールドの1つを削除する機能がありますが、行を削除しても、削除されたものに基づいて並べ替えられません。1, 2, 4, 5, 6

上記のフィールドに基づいてリストを並べ替えて、私に与える方法はあります1, 2, 3, 4, 5か?

4

2 に答える 2

4

「3」を削除したことがわかっている場合は、次のようにします。

update t
    set id = id - 1
    where id > 3
于 2013-01-23T15:01:16.313 に答える
0

これは、id列が auto_increment で動作することを前提としています

これを行うための信頼できる「ワンコマンドウェイ」はないと思います。ゴードンのソリューションを使用することもできますが、前述したように、ID が適切に再編成されません。

これが私の解決策です(PHPまたは他のスクリプト言語で作業できると仮定します):

  1. すべてのテーブル データを取得します。
  2. テーブルを切り捨てます。
  3. ALTER TABLE 'your_table' AUTO_INCREMENT=0auto_increment をリセットするために使用します。
  4. 以前に取得したデータを再挿入します。

これが私のやり方です。

于 2013-01-23T15:09:27.360 に答える