请教一下排序问题,想要按照首字母排序的sql应该怎么写?

我的数据表中需要按照字母排序的有中文和英文的数据,我利用ORDER BY CONVERT(fieldname USING gbk) 实现的排序结果是 英文按照a-z排序,之后再按中文的首字母a-z排序
我想要的结果是中文在前,英文再后,请问这个如何实现呢?

阅读 3.3k
1 个回答

直接排序是不行的,要么你就倒序排列,要么就区分一下中英文开头,分开排序再union all,注意union all子句末尾加一个limit 99999,否则可能再某些版本中被重写sql,排序失效。
给一个判断首位字符中英文的方法:length(left(column_name,1))=1就是英文,大于1就是中文

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题