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

相关推荐
九皇叔叔37 分钟前
【7】PostgreSQL 事务
数据库·postgresql
kk在加油40 分钟前
Mysql锁机制与优化实践以及MVCC底层原理剖析
数据库·sql·mysql
合作小小程序员小小店1 小时前
web网页开发,在线%ctf管理%系统,基于html,css,webform,asp.net mvc, sqlserver, mysql
mysql·sqlserver·性能优化·asp.net·mvc
Kookoos1 小时前
ABP VNext + Cosmos DB Change Feed:搭建实时数据变更流服务
数据库·分布式·后端·abp vnext·azure cosmos
JosieBook1 小时前
【Java编程动手学】Java常用工具类
java·python·mysql
hello 早上好1 小时前
MsSql 其他(2)
数据库·mysql
高压锅_12201 小时前
SQLAlchemy数据库连接密码特殊字符处理完全指南
数据库·mysql·django·sqlalchemy
Hello.Reader7 小时前
Redis 延迟监控深度指南
数据库·redis·缓存
ybq195133454317 小时前
Redis-主从复制-分布式系统
java·数据库·redis
好奇的菜鸟10 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea