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語句就搞定了.記下了說不定啥時候又會用到,直接拿過來修改修改既可以使用.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM