工作中有一章表的排序字段是按照連續的數字進行排序的,但是有時候業務上要刪除某條數據,導致排序的連續性中斷,這個不是業務想要的結果,必須連續性的排序值要給前端顯示,接下來我們的思路是,先對原來的數據進行排序生成連續性的排序序號,然后再連本身的表去修改排序的值,根據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語句就搞定了.記下了說不定啥時候又會用到,直接拿過來修改修改既可以使用.