一、前言
最近有个需求,要按姓氏从小到大查询数据。(姓名都是中文的)
写了一个sql:
a
select a.* from mytable a order by substr(a.NAME,1,1) asc
结果发现这样不行,排序是乱的。
二、解决办法
查询发现,如果mysql字符集是gbk的话,这样就可以;
如果是utf8,那就不行。
需要这样写:
a
select a.* from mytable a order by convert(substr(a.NAME,1,1) using gbk) ASC
这样就能实现按姓氏从A-Z返回了。