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

相关推荐
做cv的小昊5 分钟前
【TJU】信息检索与分析课程笔记和练习(6)英文数据库检索—web of science
大数据·数据库·笔记·学习·全文检索
warton8829 分钟前
ubuntu24.04 安装mysql8.0.36
linux·运维·mysql
严同学正在努力39 分钟前
VMware安装银河麒麟V10操作系统X86_64全过程
数据库·鸿蒙系统·kylin
智源研究院官方账号1 小时前
众智FlagOS 1.6发布,以统一架构推动AI硬件、软件技术生态创新发展
数据库·人工智能·算法·架构·编辑器·硬件工程·开源软件
dishugj1 小时前
[SQLSERVER] Lock Waits/sec参数含义详解
数据库·oracle·sqlserver
我科绝伦(Huanhuan Zhou)1 小时前
Oracle锁等待深度解析:从理论到实战的全方位指南
数据库·oracle
小Mie不吃饭1 小时前
Oracle vs MySQL 全面对比分析
数据库·mysql·oracle
我科绝伦(Huanhuan Zhou)1 小时前
KingbaseES数据库备份与恢复深度解析:原理、策略与实践
数据库·金仓数据库
烤鱼骑不快1 小时前
ubuntu系统安装以及设置
linux·数据库·ubuntu
BORN(^-^)1 小时前
达梦数据库索引删除操作小记
数据库·达梦