mysql-重新排序修改排序值-删除数据后排序字段序号断层,重新根据顺序设置连续性的排序值

Posted 知行IT讲堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql-重新排序修改排序值-删除数据后排序字段序号断层,重新根据顺序设置连续性的排序值相关的知识,希望对你有一定的参考价值。

工作中有一章表的排序字段是按照连续的数字进行排序的,但是有时候业务上要删除某条数据,导致排序的连续性中断,这个不是业务想要的结果,必须连续性的排序值要给前端显示,接下来我们的思路是,先对原来的数据进行排序生成连续性的排序序号,然后再连本身的表去修改排序的值,根据id连表修改实际排序值为查询出的递增的序号值.

 

1.现看查询出有顺序的序号效果

select @xuhao:=@xuhao+1 as \'seq\', a.exam_number,a.id from power_details a, (SELECT @xuhao:=0) b WHERE exam_major_choice = \'1\' ORDER BY a.exam_number

 

2.根据查询出的序号 seq 就可以连接本表,根据id的相互对应性进行修改了.

UPDATE power_details aaa,
(select @xuhao:=@xuhao+1 as \'seq\', a.exam_number,a.id from power_details a, (SELECT @xuhao:=0) b WHERE exam_major_choice = \'1\' ORDER BY a.exam_number) bbb
set aaa.exam_number=bbb.seq WHERE aaa.id=bbb.id

这样感觉很麻烦的工作,一条sql语句就搞定了.记下了说不定啥时候又会用到,直接拿过来修改修改既可以使用.

 

以上是关于mysql-重新排序修改排序值-删除数据后排序字段序号断层,重新根据顺序设置连续性的排序值的主要内容,如果未能解决你的问题,请参考以下文章

mysql自增长主键,删除数据后,将主键顺序重新排序

《问题总结》分类列表拖拽排序后,接着修改下拉选项值,分类列表排序顺序重新回到原始状态

sql排序方式要根据另一个表的某个字段排序怎么实现?

mysql 联表查询后,将某个字段的特定值排序在最前面

MySQL 将某个字段值排在最后,其余记录单独排序

sq 语句 查询两个表 并按时间字段排序