一个功能,点击按钮出现移动位置框 例如 <当前第5位 移动到第_10_位> 本人就把字段id为5的数据改为10 然后小于10大于5的就全部减一,问一下这种功能是用sql语句实现呢 还是后台处理方法 假如是update语句 问一下怎么写 后台又怎么样 (springMVC+MySQL)
解决方案
5
写jdbc或orm都能实现。
本人这里提供另外一种思路。
把排序字段改成double类型的,当第5位调整到第10位的位置上时,读取,第10位和11位的id,取平均数,复制给原先的5即可。
例如,原先:5,6,7,8,9,10,11;5后移到第10位,id=(10+11)/2=10.5,这样,只修改了第5位的id,就满足了排序的要求。
本人这里提供另外一种思路。
把排序字段改成double类型的,当第5位调整到第10位的位置上时,读取,第10位和11位的id,取平均数,复制给原先的5即可。
例如,原先:5,6,7,8,9,10,11;5后移到第10位,id=(10+11)/2=10.5,这样,只修改了第5位的id,就满足了排序的要求。
15
本人后来说的方法的结果就是id减1啊(往上走),并不是本人一开说的那样- –
20
这种一般是修改属于某个父id的一批数据;
update xx set id = case when id = 2 then 10 else id – 1 end where id >= 2 and id <= 10 and pid = xxx;
update xx set id = case when id = 2 then 10 else id – 1 end where id >= 2 and id <= 10 and pid = xxx;