フィールドを持つテーブルがありますsort_id
。このフィールドには、データ セットの順序を定義する 1 から n までの数字があります。今、いくつかの要素を削除したいのですが、その後、テーブルを並べ替えたいと思っています。sort_id
したがって、ギャップを「見つけ」、変更に従ってフィールドを変更するクエリが必要です。
確かに、私はこのようなことをすることができます:
SELECT sort_id FROM table WHERE id = 5
次に、sort_id を保存し、その後:
DELETE FROM table WHERE id = 5
UPDATE table SET sort_id = sort_id - 1 WHERE sort_id > {id from above}
しかし、並べ替えプロセスを 1 つのステップで実行したいと思います。