本帖最后由 liangyun 于 2019-11-18 10:41 编辑
开发的时候碰到类似这么一个问题:
mysql中有表:
create table dept(
id int auto_increment primary key comment 'id',
level int comment '权重,1--普通员工,2--经理',
name varchar(15) comment '员工姓名'
)
有一天这个系统用了很长时间了,需要增加一个“副经理”的角色,但是因为1和2已经在很多地方写死了,只能在原来的基础上,将3设为“副经理”,并且设计表的人表示以后绝对不会修改这个表了
本人小白,做外包,所以没办法
差不多就是这样,遇到一个需求,是将表中数据按照职位大小进行排序
然后我是这么写的:
select * from
dept
order by (4-level)%3 desc
然后问题虽然是解决了,思路也是我自己想出来的,但是我想不通为什么这样可以运行
有没有前辈能指点一下,这种解决思路是一个算法,还是一个什么思路?有没有通用的可以抽取的地方可以学习?这个问题疑惑了我两个月了,希望可以得到解答
|