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开始
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
select
s.*,
(select count( * ) from student a where a.id <= s.id ) as rank
from
student s
order by s.id ask --这句排序可以不要,不过自己测试一下倒反结果
随便说一下我复制粘贴学习的来源 https://blog.csdn.net/delongcpp/article/details/107732343