Mysql按姓氏从小到大排序的正确sql

一、前言

最近有个需求,要按姓氏从小到大查询数据。(姓名都是中文的)

写了一个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返回了。

相关推荐
BullSmall3 分钟前
ACID 中的一致性
数据库·oracle
Tangcan-5 分钟前
【MySQL】 事务
数据库·mysql·adb
卡布叻_星星41 分钟前
达梦数据库笔记之解决默认模式与当前表所属模式不匹配
数据库
xuefuhe43 分钟前
PostgreSQL default_statistics_target参数详解
数据库·postgresql
码界奇点1 小时前
基于Django的超市管理系统设计与实现
数据库·python·django·sqlite·毕业设计·源代码管理
shejizuopin1 小时前
基于SSM的高校旧书交易系统的设计与实现(毕业论文)
java·mysql·毕业设计·论文·ssm·毕业论文·高校旧书交易系统的设计与实现
Aloudata1 小时前
数据工程指南:指标平台选型避坑与 NoETL 语义编织技术解析
sql·数据分析·自动化·etl·指标平台
tkevinjd1 小时前
6-MySQL
mysql
invicinble1 小时前
Mysql的全域认识
数据库·mysql
OceanBase数据库官方博客1 小时前
DeepK 自动程序修复框架论文——OceanBase 校企联合研究
数据库·oceanbase·分布式数据库