怎么样改变id移动位置

J2EE 码拜 9年前 (2016-03-16) 2311次浏览
一个功能,点击按钮出现移动位置框 例如 <当前第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,就满足了排序的要求。

15

引用:
Quote: 引用:
Quote: 引用:
Quote: 引用:

假设这个id不是主键,只是用来排序的并且是连续不间断的
1、假如10这个位置不是空的,只需要写两条sql交换下id
2、假如10这个位置是空的,直接把id改成10,然后查询出全部数据按照id升序排序。从第一条数据开始更新id(0,1,2,3……)。

id不是主键  你的想法和本人一开始是一样的 但是这样不好
假如10这个位置不是空的,需要小于10大于5的就全部减一(往上走),直接5和10换位置不太好

原来我们的页面有个这样的东西。一个列表,选中一行之后点向上或向下,他就会交换位置。想从第1换到第3就要点两次向下。
你这程序可不可以这样。从第5换到10,就56交换,67交换,78交换,89交换,910交换。这样原来的10就变成9了,原来的6就变成5了,原来的5就换到10了。
或获取6-10的数据,update id=id-1  然后把id等于5的数据改成id等于10

….怎么样改变id移动位置  本人这个程序 其他页面就是你这种移动方法,但是本人现在这个页面要换成本人说的这种方法

本人后来说的方法的结果就是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;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么样改变id移动位置
喜欢 (0)
[1034331897@qq.com]
分享 (0)