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相关
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~