bob*_*obo 6 mysql sql sql-update
我在数据库中有一个用户应该能够订购的列表.
itemname| order value (int)
--------+---------------------
salad | 1
mango | 2
orange | 3
apples | 4
Run Code Online (Sandbox Code Playgroud)
从数据库加载,我只是order by order_value.
通过拖放,他应该能够移动apples,使其出现在列表的顶部..
itemname| order value (int)
--------+---------------------
apples | 4
salad | 1
mango | 2
orange | 3
Run Code Online (Sandbox Code Playgroud)
好.所以现在在内部我必须更新每个列表项目!如果列表有20或100个项目,那么对于简单的拖动操作来说,这是很多更新.
itemname| order value (int)
--------+---------------------
apples | 1
salad | 2
mango | 3
orange | 4
Run Code Online (Sandbox Code Playgroud)
我宁愿只做一次更新.我想到的一种方式是"内部订单"是否为double值.
itemname| order value (double)
--------+---------------------
salad | 1.0
mango | 2.0
orange | 3.0
apples | 4.0
Run Code Online (Sandbox Code Playgroud)
在拖放操作之后,我赋值apples的值小于它出现在前面的项目:
itemname| order value (double)
--------+---------------------
apples | 0.5
salad | 1.0
mango | 2.0
orange | 3.0
Run Code Online (Sandbox Code Playgroud)
..如果一个项目被拖到某个地方的中间,它order_value比它后面的那个更大..在这里我移动orange到之间salad和mango:
itemname| order value (double)
--------+---------------------
apples | 0.5
salad | 1.0
orange | 1.5
mango | 2.0
Run Code Online (Sandbox Code Playgroud)
有关更好的方法的任何想法吗?