1.常规排序ASC DESC

ASC 正序

DESC倒叙

-- 此处不用多讲

2.自定义排序

自定义排序是根据自己想要的特定字符串(数字)顺序进行排序。主要是使用函数 FIELD(str,str1,str2,str3,...)

MySQL的自定义排序,str与str1、str2、str3...进行比较,并按照str1,str2,str3...的顺序输出,如果遇到str为null或者不存在str1,str2,str3...中的情况的则序列为0,

eg1:

select * from test order by field(value,'test1','test2','test3','test4') asc/desc

eg2:

select * from test where value in('test1','test2','test3','test4') order by field(value,'test1','test2','test3','test4') asc/desc-- 保证只满足条件的进行排序

3.按中文拼音字母排序

如果表字段使用的GBK编码的话,我们可以直接order by value,因为GBK本身就是按照拼音字母排序ABCDEFGHIGK...,当第一位相同的时候会比较第二位,以此类推。 如果表字段使用的UTF-8编码的话,通常我们都会的编码,这样我们可以使用MySQL的convert方法开转换gbk进行排序。

eg1:

select * from user ORDER BY CONVERT(name USING GBK) ASC;

我们可以从下图看出,这种配需方式没有将中文和英文结合起来一起排序,而是各自的排序。故而我们使用mysql的存储过程做到不管是用户的姓名为中文或是英文,都可以综合的排序,具体代码如下:

1 DELIMITER $$2 CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf83 DETERMINISTIC4 BEGIN

5 DECLARE V_RETURN VARCHAR(255);6 DECLARE V_BOOL INT DEFAULT 0;7 DECLARE FIRST_VARCHAR VARCHAR(1);8

9 SET FIRST_VARCHAR = left(CONVERT(P_NAME USING gbk),1);10 SELECT FIRST_VARCHAR REGEXP '[a-zA-Z]' INTOV_BOOL;11 IF V_BOOL = 1 THEN

12 SET V_RETURN =FIRST_VARCHAR;13 ELSE

14 SET V_RETURN = ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAME USING gbk),1)),16,10),15 0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,16 0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,0xC8F6,17 0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1),18 'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z');19 END IF;20 RETURNV_RETURN;21 END$$22 DELIMITER;

View Code

查询语句为:select fristPinyin(name) as pinyin_index,name from app_user ORDER BY fristPinyin(name) ASC ;

注意:

1)fristPinyin 函数只需要运行一次,后面直接操作查询语句即可,如果后面也一起运行会出现:[Err] 1304 - FUNCTION fristPinyin already exists;

2)由于汉语拼音没有以'I','U','V','W'开头的,所以转化的只有'A',  'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'W', 'X', 'Y', 'Z'。

三种排序对比结果:

mysql 首字母排序_Mysql sql书写之——实现首字母从A-Z排序相关推荐

  1. mysql分布式数据库架构_MySQL分布式数据库架构:分库、分表、排序、分页、分组、实现教程...

    MySQL分库分表总结: 单库单表 : 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 单库多表 : 随着用户数量的增加, ...

  2. mysql 嵌套查询性能_mysql SQL优化之嵌套查询-遁地龙卷风

    (-1) 写在前面 这篇随笔的数据使用的是http://blog.csdn.net/friendan/article/details/8072668#comments里的,里面有一些常见的select ...

  3. mysql 42000 报错_MySQL SQL Error: 1064, SQLState: 42000 错误

    你不小心使用了下面的关键字,那么就会报这个错误: SQL Error: 1064, SQLState: 42000 MySQL 关键字和保留字 下面这些是目前 MySQL 所拥有的关键字和保留字,在使 ...

  4. mysql 生成日历视图_mysql sql语句生成日历表

    mysql sql语句生成日历表  (主要用于按月,按天group by分组统计时,有些日期没有记录,需要补0) 从自定义的开始时间,生成1万条记录 CREATE TABLE if not exist ...

  5. mysql 语句 简书_MySQL SQL语句

    Mysql数据库:端口号3306,超级用户 root unsigned 正值 修改提示符:--prompt 提示符 常见定义 参数:\D 完整的日期 \d当前数据库 \h服务器名称 \u 当前用户 数 ...

  6. mysql查询显示技巧_MYSQL SQL高级查询技巧

    1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. ...

  7. mysql执行计划性能_MySQL SQL性能分析Explain执行计划

    一. 执行计划返回信息详解 ①. 执行计划所含字段 输出列含义id查询标识 select_type查询类型 table查询涉及的表 partitions匹配到的分区信息 type连接类型 possib ...

  8. mysql 存储过程排序_MYSQL查询节点的所有父节点,按层级排序的存储过程

    查询节点的所有父节点,按层级排序的存储过程 父子关系表结构: `parentnode` int(11) ,-- 父节点 `node` int(11)  ,  -- 节点 `isparent` int( ...

  9. mysql消重统计_mysql sql查询如何实现发私信用户和其他用户的列表?要求消重所有重复的用户结果 - 贪吃蛇学院-专业IT技术平台...

    私信表结构如下: 建表语句和数据 CREATE TABLE `message` ( `id` int(5) NOT NULL, `sender_id` int(5) DEFAULT NULL, `re ...

最新文章

  1. JS window事件全集解析
  2. 查询数据库中的表结构信息
  3. 压缩感知(I) A Compressed Sense of Compressive Sensing (I)
  4. java常见的排序算法_常见排序算法及Java实现
  5. HTTP/3 来了,你了解它么?
  6. H264规定了三种主要档次
  7. TensorFlow(3)-与训练相关的操作
  8. 运行gclient一直没反应_安川变频器通电没反应维修措施分享
  9. 使用python对文件下的文件批量重命名
  10. 使用ElasticSearch6.0快速实现全文搜索功能
  11. Introduction to dnorm, pnorm, qnorm, and rnorm for new biostatisticians
  12. 每天一道剑指offer-翻转单词顺序列
  13. 家庭网络布线图与布线方案
  14. PHP网页输入年份查找生肖,vb十二生肖程序 根据年份的输入便可以查询到你是什么生肖...
  15. 为您详解在ChemDraw中进行3D建模的方法
  16. 内涵外延发生巨变的嵌入式技术,未来如何发展?
  17. PHPMywind while 二级嵌套循环
  18. 欧格教育:差评对店铺有哪些影响
  19. 设定所有版本的谷歌浏览器支持flash
  20. 亲测UEFI启动模式的电脑安装Win10和Ubuntu双系统

热门文章

  1. 当前的几种开源游戏服务端介绍
  2. 用户激励—积分体系分析
  3. 离职证明中能否写明离职原因?
  4. JBOD里都有什么?
  5. 【财经期刊FM-Radio|2020年12月18日】
  6. 第十二讲-面向对象(二)作业
  7. wundos无法对计算机进行启动,fanhuiwundos电脑提醒不是正版想
  8. 三十七、The authenticity of host ‘slave1 (192.168.231.106)‘ can‘t be established.
  9. dpo指标详解买入绝技_极少人知道的“DPO MADPO”组合指标,完胜MACD,实战性很强!...
  10. 中国高阻隔膜行业运营模式分析及发展前景展望报告报告2021年版