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

相关推荐
zfj3215 小时前
H2数据库源码学习+debug, 数据库 sql、数据库引擎、数据库存储从此不再神秘
java·数据库·sql·学习·数据库底层原理
小赵面校招6 小时前
Redis企业级开发实战:核心应用场景与最佳实践
数据库·redis·缓存
pp-周子晗(努力赶上课程进度版)7 小时前
【MYSQL】基本查询,表的增删查改
数据库·mysql
英英_7 小时前
详细介绍一下Python连接MySQL数据库的完整步骤
数据库·python·mysql
LabVIEW开发8 小时前
LabVIEW数据库使用说明
数据库·sql·labview知识
Python智慧行囊8 小时前
Python Django 的 ORM 编程思想及使用步骤
数据库·python·django·orm
苹果酱05678 小时前
Golang中的runtime.LockOSThread 和 runtime.UnlockOSThread
java·vue.js·spring boot·mysql·课程设计
南方以南_9 小时前
【云实验】Excel文件转存到RDS数据库
数据库·excel
万山y10 小时前
es快速上手(从MySQL角度)
mysql·elasticsearch·jenkins
Listennnn10 小时前
Neo4j数据库
数据库·人工智能·neo4j