如题,表数据如图,把名字为胡斯的学生成绩排第一条,其他学生的成绩倒序排列。
方法1:union all
select * from stu_score where stu_name = ‘胡斯’
union all
(select * from stu_score where stu_name != ‘胡斯’ ORDER BY stu_score DESC limit 999);
注意:limit条件必须加,后面数字根据实际情况写。不加limit根据mysql版本不同,可能会出现其他学生成绩不排序的情况。
排序结果展示:
方法2:设定额外排序条件
select (case when stu_name = ‘胡斯’ then 0 else 1 end) as flag,a.* from stu_score a order by flag asc,stu_score desc;
排序后展示: