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

相关推荐
jiunian_cn1 分钟前
【Redis】数据库管理操作
数据库·redis·缓存
l1t9 分钟前
DeepSeek总结的DuckDB使用 WITH RECURSIVE 和 USING KEY 进行聚合的特性
sql·duckdb
_Johnny_25 分钟前
ETCD 配额/空间告警模拟方案
网络·数据库·etcd
l1t32 分钟前
DeepSeek总结的PostgreSQL解码GIF文件SQL移植到DuckDB的性能优化方法
sql·postgresql·性能优化
猫头虎38 分钟前
基于信创openEuler系统安装部署OpenTeleDB开源数据库的实战教程
数据库·redis·sql·mysql·开源·nosql·database
爬山算法42 分钟前
MongoDB(1)什么是MongoDB?
数据库·mongodb
Nandeska1 小时前
17、MySQL InnoDB ReplicaSet
数据库·mysql
AI_56781 小时前
SQL性能优化全景指南:从量子执行计划到自适应索引的终极实践
数据库·人工智能·学习·adb
hlABgYML1 小时前
基于NGSIM数据的Wiedemann99跟驰模型标定
mysql
kali-Myon1 小时前
2025春秋杯网络安全联赛冬季赛-day1
java·sql·安全·web安全·ai·php·web