mysql 按字段拼音首字母排序

在处理项目的车型库问题时,由于车型的品牌众多,后台数据管理需要对车型品牌按拼音进行正常 A~Z 正向排序,若不然管理员维护数据将是一个十分头疼的事儿。话不多说,上代码:

1

orderbyconvert(a.brand_nameusinggbk)collategbk_chinese_ciasc

以上的 sql 语句即表明以表 a 的 brand_name 拼音首字母来排序,不过这种写法是针对字段的字符编码 utf8_general_ci 的。如果字符编码是 latin1_swedish_ci ,用以下的写法:

1

orderbybirary(a.brand_name)asc

mysql 按字段拼音首字母查询

首先创建一个获取中英文大写首字母函数:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

DROPFUNCTIONIFEXISTS`GET_FIRST_PINYIN_CHAR`;

CREATEFUNCTION`GET_FIRST_PINYIN_CHAR`(PARAMVARCHAR(255))RETURNSVARCHAR(2)CHARSETutf8

BEGIN

DECLAREV_RETURNVARCHAR(255);

DECLAREV_FIRST_CHARVARCHAR(2);

SETV_FIRST_CHAR=UPPER(LEFT(PARAM,1));

SETV_RETURN=V_FIRST_CHAR;

IFLENGTH(V_FIRST_CHAR)<>CHARACTER_LENGTH(V_FIRST_CHAR)THEN

SETV_RETURN=ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(PARAMUSINGgbk),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');

ENDIF;

RETURNV_RETURN;

END

代码中使用的 mysql 函数意义

left(str,length):从左边开始截取字符串

upper(str):将字符串转为大写

length(str):计算字符串长度,一个汉字算三个字符,一个数字或字母算一个字符

character_length(str):汉字、数字、字母都算一个字符

convert(expr USING encode):不同字符集之间的数据转换

hex(Number or Str):将数字或字符串转换为十六进制

conv(Number, from, to):将数字从原来的进制转换成指定的进制

interval(N,N1,N2,N3,……):将N的值与后面的值列表进行比较。假如N < N1,则返回值为0;假如N < N2 等等,则返回值为1;假如N < N3 等等,则返回值为2;…..以此类推;假如N 为NULL,则返回值为 -1 。所有的参数均按照整数处理。为了这个函数的正确运行,必须满足 N1 < N2 < N3 < ……< Nn

elt(N,str1,str2,str3,…):若N = 1,则返回值为 str1,若N = 2,则返回值为 str2,以此类推。若N 小于1或大于参数的数目,则返回值为 NULL。

查询 sql 示例

1

2

select……frommytablea

whereget_first_pinyin_char(a.brand_name)=#{alphaBet}

其中,#{alphaBet} 是项目 mybatis 配置文件中传参的写法,可按照自己的框架进行调整。

如果觉得文章还不错,欢迎打赏

喜欢 (0)or分享 (0)

mysql首字母排序_mysql 按字段的首字母排序及查询相关推荐

  1. mysql 实现按首字母字典序排序以及根据字段汉字首字母搜索

    目录 mysql 实现按首字母字典序排序 mysql 根据字段汉字首字母搜索 mysql 实现按首字母字典序排序 mysql 一个表中的某一个字段存储的是人的名字 name 字符编码utf8_gene ...

  2. mysql韩语排序_MySQL汉字字段按拼音排序

    我们的MySQL使用latin1的默认字符集,也就是说,对汉字字段直接使用GBK内码的编码进行存储,当需要对一些有汉字的字段进行拼音排序时(特别涉及到类似于名字这样的字段时),默认无法通过order ...

  3. mysql中从高到低排序_MySQL数据库少有人知的排序方式 MySQL数据库使用教程

    免费学习推荐: ORDER BY 字段名 升序/降序,相信进来的朋友都认识这个排序语句,但遇到一些特殊的排序,单单使用字段名就无法满足需求了,下面给大家介绍几个我遇到过的排序方法: 一.准备工作 为了 ...

  4. mysql按字段值排序_mysql按字段值排序

    1.mysql按字段值的拼音首字母排序 关键词binary :SELECT name FROM topic ORDER BYbinary name asc 2.php获取汉字拼音的第一个字母 直接调用 ...

  5. mysql按笔划排序_mysql中怎么按姓氏笔画排序

    展开全部 项目中有时候需要按照汉字的拼音排序,比如联系人列表.矿物分类等,有的还需62616964757a686964616fe78988e69d8331333363386232要按拼音字母从A到Z分 ...

  6. mysql int 做排序_Mysql数据库按照varchar字符串类型排序和按照int整型类型排序的区别和注意点及解决方案...

    自己建表的时候,把一个字段类型创建为varchar(2) ,其实应该建为int(2)的.因为我只允许输出数字.这本来也没什么,无非就是占点空间,懒得改了.但是今天在后台发现排序有问题.于是,没办法,改 ...

  7. mysql key value 排序_MySQL利用索引优化ORDER BY排序语句的方法

    创建表&创建索引 create table tbl1 ( id int unique, sname varchar(50), index tbl1_index_sname(sname desc ...

  8. mysql text查找性能_MySQL TEXT字段性能

    I now know that TEXT fields are written to disk rather than in memory when queried 仅当查询需要临时表来存储多个排序或 ...

  9. mysql 平均值 排序_MySQL按平均两个平均值排序

    我正在竞赛网站上工作,有两种类型的用户,普通网站成员和评委.每个人都可以使用拖放工具按照他们选择的顺序对特定比赛中的条目进行排序.完成后,相关的条目ID将附加一个排名值,然后可用于确定比赛中哪个条目获 ...

  10. mysql key value 排序_MySQL按字符串中部分数值排序

    问题描述 工程实践2中遇到的问题.数据库中设计表的时候,有时候为了满足需求,某些字段的值是中英文与数字混合的,当需要查询这种字段并且排序时,直接使用"order by 某个字段", ...

最新文章

  1. 如何解决文件明明存在nginx却提示404
  2. jstl处理栏目与子栏目_深圳北易:网站SEO优化如何提高网站栏目页排名
  3. git使用笔记(一)入门
  4. 《码出高效 Java开发手册》第八章 单元测试 (未整理)
  5. openstack 虚拟机如何修改ip地址
  6. 来了!最详细2019实习生退税完全攻略(适用于所有实习过的同学)
  7. c++常用备忘(持续更新)
  8. cisco ios 权限等级详解
  9. 乐心健康php,《乐心健康》修改步数网页【获取方法】入口
  10. 计算机考研各科时间安排,计算机考研专业课复习全程的时间安排
  11. magisk安装失败_安卓5.0到安卓10全版本Xposed安装激活使用教程
  12. 用一报还一报(TIT FOR TAT)策略的胜利指导我们的生活和人际交往
  13. python小乌龟绘制迷宫_用turtle不断的画回字迷宫
  14. js根据生日输出对应的生肖和星座
  15. 如何查看自己的淘宝号使用多久了,淘龄怎么查?
  16. 用 Python 基于均线交叉策略进行回测
  17. Poco访问mysql
  18. python进阶day4
  19. 地质勘查土质分类图片_地质土质分类
  20. 微软 奥尔良 游戏服务器,去了新奥尔良,才知道是一个城市,别只知道奥尔良烤翅...

热门文章

  1. [2018.04.29 T1] 图
  2. vue获取子组件元素
  3. kubectl配置tab补全
  4. history 历史命令
  5. java程序包condition不存在,Ant javac:包x不存在,但我将x.jar添加到java构...
  6. html如何在第二个网页中显示第一个网页参数_接口测试平台代码实现5:亲手创造第一个首页...
  7. python json提取器_入门python爬虫,10分钟就够了,这可能是我见过最简单的基础教学...
  8. springcloud config不重启修改配置_SpringCloud实战-Bus消息总线(动态修改配置)
  9. unity3d技术摄像头跟随_天尚元无人驾驶技术应用丨环卫清扫车
  10. android 一位小数_android如何保留小数点后x位数字