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的存储过程做到不管是用户的姓名为中文或是英文,都可以综合的排序,具体代码如下:

DELIMITER $$CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8

DETERMINISTICBEGIN

DECLARE V_RETURN VARCHAR(255);DECLARE V_BOOL INT DEFAULT 0;DECLARE FIRST_VARCHAR VARCHAR(1);SET FIRST_VARCHAR = left(CONVERT(P_NAME USING gbk),1);SELECT FIRST_VARCHAR REGEXP '[a-zA-Z]' INTOV_BOOL;IF V_BOOL = 1 THEN

SET V_RETURN =FIRST_VARCHAR;ELSE

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

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实现首字母从A-Z排序相关推荐

  1. mysql a-z排序_mysql实现首字母从A-Z排序

    1.常规排序ASC DESC ASC 正序 DESC倒叙 - 此处不用多讲 2.自定义排序 自定义排序是根据自己想要的特定字符串(数字)顺序进行排序.主要是使用函数 FIELD(str,str1,st ...

  2. mysql简拼查询_MySQL拼音首字母查询_MySQL

    bitsCN.com 最近一个项目中有个模块需要实现拼音首字母查询功能,网上查了一下资料,自己重新修改整理了一下,使其满足项目的要求. 实现过程如下: 1.创建一个获取中英文大写首字母函数: DROP ...

  3. mysql时间排序_mysql – 按日期和时间降序排序?

    所有 我想显示最近5个输入的数据,以获取特定的ID. 我的sql查询是, SELECT id, name, form_id, DATE(updated_at) as date FROM wp_frm_ ...

  4. mysql++月份排序_Mysql 按月份为组进行统计排序_MySQL

    SELECT YEAR(established_time) AS 'year' , MONTH(established_time) AS 'month' , COUNT(*) AS 'count' F ...

  5. mysql帖子排序_mysql - 无法按元值对帖子排序 - SO中文参考 - www.soinside.com

    我正在尝试获取Wordpress个帖子的列表,并以DESC顺序使用meta_key =" zoacres_property_price"对它们进行排序,所以我做到了:SELECT ...

  6. mysql 分组行号_mysql 显示行号,以及分组排序

    建表: CREATE TABLE `my_tb` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_code` varchar(255) DEFAULT ...

  7. 查询排序_MySQL使用UNION连接两个查询排序失效

    概述 UNION 连接数据集关键字,可以将两个查询结果集拼接为一个,会过滤掉相同的记录. UNION ALL 连接数据集关键字,可以将两个查询结果集拼接为一个,不会过滤掉相同的记录 今天在接到一个需求 ...

  8. mysql表中文字段提取拼音首字母最便捷实现,中文按拼音首字母排序

    mysql表中文字段提取拼音首字母 SELECT a.提取字段, IFNULL(ELT(INTERVAL (CONV(HEX(left(CONVERT(a.提取字段 USING gbk), 1)), ...

  9. mysql按首字母查询_按照首字母搜索功能(mysql数据库执行语句)

    标签:sql select *  from `dd` order by ELT(INTERVAL(CONV(HEX(left(CONVERT(num USING gbk),1)),16,10), 0x ...

最新文章

  1. android Intent PendingIntent的区别
  2. 使用摄像头运行ORB SLAM2---使用视频运行ORB-SLAM2
  3. 【Spring注解系列08】@PostConstruct与@PreDestroy
  4. java canonicalize_java.io.IOException:java.io.WinNTFileSystem.canonicalize0处的无效参数
  5. html所有页面根的对象,在django中显示来自所有用户的对象,无需登录到html页面...
  6. php 换行 PHP_EOL变量
  7. mysql innodb缓存策略之Buffer Pool
  8. SpringBoot 精通系列-构建一个RESTful Web 服务
  9. 微信小程序-day1
  10. 阶段3 2.Spring_08.面向切面编程 AOP_1 AOP的概念
  11. ArcGIS中GWR模型的构建
  12. 十大骨传导耳机品牌,骨传导耳机品牌推荐
  13. php Excel 合并单元格
  14. ubuntu连接xp的共享打印机
  15. chromedriver selenium谷歌浏览器驱动
  16. 将BT进行到底-BT客户端工具全收集
  17. JavaScript进阶必会的手写功能(二)
  18. 默认事件和阻止默认事件
  19. 张量中unfold()函数理解
  20. 机器学习 -- 二元逻辑回归实例

热门文章

  1. php 竞拍系统,在线竞拍系统的PHP实现框架
  2. EOS注册账号小白篇, 使用app注册EOS账号
  3. 机器学习之监督学习、数据标签
  4. centos开机自启动脚本死循环无法开机解决
  5. android手机备份恢复出厂设置密码,华为手机恢复出厂设置密码多少呢?
  6. 论文笔记《Spatially Sparse Precoding in Millimeter Wave MIMO Systems》
  7. 计算机er应该选择保研还是出国?
  8. ARM架构基本理论(1)
  9. msm8953 + android7.1.2知识总结
  10. 软件测试面试“圣经”分享,满满的知识点