MySQL,按字母顺序排序,异常

GSt*_*Sto 1 mysql

我有一个表是国家列表,有两个字段,ID(int)和country_name.我需要编写一个查询,可以提取按字母顺序排列的国家/地区列表,但美国的记录位于顶部.我怎样才能做到这一点?假设美国的id记录= 100.

And*_*and 6

select * 
  from country
 order by case when id = 100 then 0 else 1 end, country_name
Run Code Online (Sandbox Code Playgroud)

额外的说明.

该解决方案在某些方面与其他建议不同

  • UNION的方式.UNION的默认行为是删除重复项,这可能是也可能不需要(MySQL中的Unions).此外,除非id被索引,否则你将有两倍的执行时间
  • "选择一些东西并对其进行排序"很不错,但是返回额外的数据,并且根据接收框架,这可能是不可取的.