i逐浪 2022-07-07 16:14 采纳率: 0%
浏览 16

MySql查询自增序号持续叠加,不会归零

问题遇到的现象和发生背景

MySql在执行查询时,因需,需要增加一列序号用于排序

问题相关代码,请勿粘贴截图

以下是MySql脚本,Sn就是上面所提的序号

SET @i=0;
SELECT (@i:=@i+1) AS Sn
,u.user_id
,u.user_name
,u.user_real_name
,u.user_organ_id
,u.user_organ_name

FROM t_s_user u
WHERE 1=1
ORDER BY u.user_real_name

运行结果及报错内容

在实际使用时,每执行查询一次,序号就会持续+1递增,
好像是Order By语句影响了序号,把它注释后正常,解除注释又继续叠加序号

我的解答思路和尝试过的方法

脚本检查无异常,不知为何

我想要达到的结果

我需要的是每次执行查询,不管是否有修改过脚本,是否增删列显示,它都能重新从1开始

  • 写回答

2条回答 默认 最新

  • 於黾 2022-07-07 16:45
    关注

    select在前,order by在后
    默认按照第一列进行排序,假如id是1,2,3,4,那么sn对应的也是1,2,3,4
    order by是按照name排序,那么假如排序后id的顺序是4,3,2,1,那么sn必然也变成4,3,2,1了呀
    你可以试着嵌套一层select,在内层order by,外层加sn

    评论

报告相同问题?

问题事件

  • 修改了问题 7月7日
  • 创建了问题 7月7日