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

相关推荐
原机小子1 小时前
SpringBoot在线教育系统:从零到一的构建过程
数据库·spring boot·后端
一 乐2 小时前
英语词汇小程序小程序|英语词汇小程序系统|基于java的四六级词汇小程序设计与实现(源码+数据库+文档)
java·数据库·小程序·源码·notepad++·英语词汇
2401_857026233 小时前
时尚界的技术革新:Spring Boot与“衣依”服装销售
数据库·spring boot·性能优化
bbqz0073 小时前
逆向WeChat(七)
数据库·c++·微信·逆向·protobuf·sqlcipher·破解密钥·解码protobuf·wechatdb
七折困3 小时前
DBMS-3.4 SQL(4)——存储过程和函数&触发器
数据库·sql
皮皮虾在睡觉4 小时前
数据库基础04
android·数据库
程序员的春天14 小时前
基于Springboot+Vue的线上课堂系统(含源码数据库)
数据库·vue.js·spring boot
小码农叔叔4 小时前
【大数据】Flink CDC 实时同步mysql数据
大数据·mysql·flink
丶21364 小时前
【SQL】深入理解SQL:从基础概念到常用命令
数据库·后端·sql