次の課題があります。
「タスク」テーブル:
tasksId int
listId int
taskOrder float
すべてのタスクをリスト 2 からリスト 3 に移動したい場合は、次のようにします。
// pseodo code //
@lastTaskOrder = last task order in list 3
loop - {
UPDATE tasks SET taskOrder = @lastTaskOrder + 1, listId = 3 WHERE listId = 2;
@lastTaskOrder++
}
したがって、taskOrder は一意のままです。
すべてのタスクをリスト 2 からリスト 3 の先頭に移動したい場合は、次のようにします。
// pseodo code //
@firstTaskOrder = first task order in list 3
@delta = @firstTaskOrder / @numberOfTasksToMove
UPDATE tasks SET taskOrder = @firstTaskOrder + @delta, listId = 3 WHERE listId = 2;
@firstTaskOrder = @firstTaskOrder + @delta
mySQL + PDO + PHP で可能ですか?