アプリケーションに順序付けられた一連のフィールドがあるプロジェクトに取り組んでいます。さらに、フィールドの1つを削除する機能がありますが、行を削除しても、削除されたものに基づいて並べ替えられません。1, 2, 4, 5, 6
上記のフィールドに基づいてリストを並べ替えて、私に与える方法はあります1, 2, 3, 4, 5
か?
アプリケーションに順序付けられた一連のフィールドがあるプロジェクトに取り組んでいます。さらに、フィールドの1つを削除する機能がありますが、行を削除しても、削除されたものに基づいて並べ替えられません。1, 2, 4, 5, 6
上記のフィールドに基づいてリストを並べ替えて、私に与える方法はあります1, 2, 3, 4, 5
か?
「3」を削除したことがわかっている場合は、次のようにします。
update t
set id = id - 1
where id > 3
これは、id
列が auto_increment で動作することを前提としています
これを行うための信頼できる「ワンコマンドウェイ」はないと思います。ゴードンのソリューションを使用することもできますが、前述したように、ID が適切に再編成されません。
これが私の解決策です(PHPまたは他のスクリプト言語で作業できると仮定します):
ALTER TABLE 'your_table' AUTO_INCREMENT=0
auto_increment をリセットするために使用します。これが私のやり方です。