私は "位置"の行を持つMySQLテーブルを持っています。基本的に、独自のID、説明、タイトル(および位置)の行を持つ一連のレコード。MySQL、PHP:レコードを特定の行で「スライドダウン」する方法は?
位置はレコードごとに一意であり、2つのレコードが同じ位置を持つことはできません。新しいレコードを作成すると、最大位置値を選択して1を加算することによってその位置が作成されます。
のレコードを削除すると、テーブルの「ギャップ」の位置に問題が発生します。レコードが1,2,3,4,5ポジションの値を持ち、4番目を削除して1,2,3,5になるとします。
この行を「スライド」させて1にします。 2番目、3番目、4番目のレコードが削除された場合、1、2、3(1,3,4の代わりに)になります。
1,3,2,4,5,6、_、8のような複雑な位置のスタックがある場合は、_が削除されているので、順不同の1、3、2、4部分を尊重する必要があります。あなたが特定した後に(あなたが削除されている位置)の値はすべての値をフェッチ.Then知っている位置、&を削除すると1、3、2、4、5、6、7
1.プライマリキーを使用せずに、プライマリキーを使用すると、同時実行性の問題が発生します。3.なぜ連続した数値が必要ですか? – Mihai
@ミハイ私はすでに主キーとして 'id'を持っています。 –
@Mihai PHP( 'SELECT * FROM' products 'WHERE(' position '> "。$ start。")AND(' position '<")を介してWebサイトに表示される一連の要素$ offset ")ORDER BY 'position' ASC ;;))新しい位置が占有されている場合に限り、特定の要素の位置を設定することができます(他の要素とちょっとスワップします) –