mysql 如何中文英文混合排序排序目标是,英文就按首字母的 a,b,c 排 , 中文则按汉字的首字母排 。
最简单的排序方法只需要一条 SQL 语句就可以完成:
01mysql select tag, COUNT(tag) from news GROUP BY tag order byconvert(tag using gbk) collate gbk_chinese_ci;
02----------------- -----------------
03| tag| COUNT(tag) |
04----------------- -----------------
05| .Net|3 |
06| 10000小时|1 |
07| Amazon|9 |
08| android|57 |
09| C语言|1 |
10| Dennis Ritchie|2 |
11| Go语言|5 |
12| IT见解|146 |
13| JavaScript|4 |
14| John McCarthy|1 |
15| JQuery|7 |
16| Zynga|1 |
17| 阿里巴巴|28 |
18| 贝尔实验室|1 |
19| 互联网|24 |
20| 简明现代魔法|1 |
21| 淘宝网|2 |
22| 信息图|1 |
23| 余额宝|11 |
24| 支付宝|14 |
25| 植物大战僵尸|4 |
26| 自媒体|3 |
27----------------- -----------------
上面是按 gbk 字符集排序的,那么如果按 utf8 又如何呢?
view sourceprint?
01mysql select tag, COUNT(tag) from news GROUP BY tag order byconvert(tag using utf8) collate utf8_unicode_ci;
02----------------- -----------------
03| tag| COUNT(tag) |
04----------------- -----------------
05| .Net|3 |
06| 10000小时|1 |
07| 12306|1 |
08| C语言|1 |
09| IT见解|146 |
10| Quora|4 |
11| Twitch|1 |
12| Twitter|19 |
【mysql字母怎么排序 mysql字母占几个字符】13| Zynga|1 |
14| 三星|3 |
15| 专利|1 |
16| 余额宝|11 |
17| 开曼群岛|1 |
18| 意志力|1 |
19| 植物大战僵尸|4 |
20| 注意力经济|1 |
21| 简明现代魔法|1 |
22| 诺基亚|12 |
23| 诺贝尔奖|1 |
24| 豆瓣|3 |
25| 贝佐斯|1 |
26| 贝尔实验室|1 |
27| 轻博客|3 |
28| 运营|1 |
29| 量子计算机|1 |
30| 黑莓|1 |
31----------------- -----------------
PS:ci是 case insensitive, 即 “大小写不敏感”,a 和 A 会在字符判断中会被当做一样的 。
数字和引文排序是没问题 , 但为什么 H黑莓 会比 L量子计算机 靠后呢?这个在后面的章节会慢慢道来 。
mysql字段排序数字在字母前面,字母也要按首字母排序如果是oracle 的话 , 创建下面的函数,调用函数做视图可以实现你要的效果
CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS
V_COMPARE VARCHAR2(100);
V_RETURN VARCHAR2(4000);
FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2 AS
BEGIN
RETURN NLSSORT(P_WORD, 'NLS_SORT=SCHINESE_PINYIN_M');
END;
BEGIN
FOR I IN 1..LENGTH(P_NAME) LOOP
V_COMPARE := F_NLSSORT(SUBSTR(P_NAME, I, 1));
IF V_COMPARE = F_NLSSORT(' 吖 ') AND V_COMPARE = F_NLSSORT('骜 ') THEN
V_RETURN := V_RETURN || 'a';
ELSIF V_COMPARE = F_NLSSORT('八 ') AND V_COMPARE = F_NLSSORT('簿 ') THEN
V_RETURN := V_RETURN || 'b';
ELSIF V_COMPARE = F_NLSSORT('嚓 ') AND V_COMPARE = F_NLSSORT('错 ') THEN
V_RETURN := V_RETURN || 'c';
ELSIF V_COMPARE = F_NLSSORT('?') AND V_COMPARE = F_NLSSORT('鵽 ') THEN
V_RETURN := V_RETURN || 'd';
ELSIF V_COMPARE = F_NLSSORT('妸 ') AND V_COMPARE = F_NLSSORT('樲 ') THEN
V_RETURN := V_RETURN || 'e';
ELSIF V_COMPARE = F_NLSSORT('发 ') AND V_COMPARE = F_NLSSORT('猤 ') THEN
V_RETURN := V_RETURN || 'f';
ELSIF V_COMPARE = F_NLSSORT('旮 ') AND V_COMPARE = F_NLSSORT('腂 ') THEN
V_RETURN := V_RETURN || 'g';
ELSIF V_COMPARE = F_NLSSORT('妎 ') AND V_COMPARE = F_NLSSORT('夻 ') THEN
V_RETURN := V_RETURN || 'h';
ELSIF V_COMPARE = F_NLSSORT('丌 ') AND V_COMPARE = F_NLSSORT('攈 ') THEN
V_RETURN := V_RETURN || 'j';
ELSIF V_COMPARE = F_NLSSORT('咔 ') AND V_COMPARE = F_NLSSORT('穒 ') THEN
V_RETURN := V_RETURN || 'k';
ELSIF V_COMPARE = F_NLSSORT('垃 ') AND V_COMPARE = F_NLSSORT('擽 ') THEN
V_RETURN := V_RETURN || 'l';
ELSIF V_COMPARE = F_NLSSORT('呒 ') AND V_COMPARE = F_NLSSORT('椧 ') THEN
V_RETURN := V_RETURN || 'm';
ELSIF V_COMPARE = F_NLSSORT('拏 ') AND V_COMPARE = F_NLSSORT('疟 ') THEN
V_RETURN := V_RETURN || 'n';
ELSIF V_COMPARE = F_NLSSORT('筽 ') AND V_COMPARE = F_NLSSORT('沤 ') THEN
V_RETURN := V_RETURN || 'o';
ELSIF V_COMPARE = F_NLSSORT('妑 ') AND V_COMPARE = F_NLSSORT('曝 ') THEN
V_RETURN := V_RETURN || 'p';
ELSIF V_COMPARE = F_NLSSORT('七 ') AND V_COMPARE = F_NLSSORT('裠 ') THEN
V_RETURN := V_RETURN || 'q';
ELSIF V_COMPARE = F_NLSSORT('亽 ') AND V_COMPARE = F_NLSSORT('鶸 ') THEN
V_RETURN := V_RETURN || 'r';
ELSIF V_COMPARE = F_NLSSORT('仨 ') AND V_COMPARE = F_NLSSORT('蜶 ') THEN
V_RETURN := V_RETURN || 's';
ELSIF V_COMPARE = F_NLSSORT('侤 ') AND V_COMPARE = F_NLSSORT('箨 ') THEN
V_RETURN := V_RETURN || 't';
ELSIF V_COMPARE = F_NLSSORT('屲 ') AND V_COMPARE = F_NLSSORT('鹜 ') THEN
V_RETURN := V_RETURN || 'w';
ELSIF V_COMPARE = F_NLSSORT('夕 ') AND V_COMPARE = F_NLSSORT('鑂 ') THEN
V_RETURN := V_RETURN || 'x';
ELSIF V_COMPARE = F_NLSSORT('丫 ') AND V_COMPARE = F_NLSSORT('韵 ') THEN
V_RETURN := V_RETURN || 'y';
ELSIF V_COMPARE = F_NLSSORT('帀 ') AND V_COMPARE = F_NLSSORT('?') THEN
V_RETURN := V_RETURN || 'z';
END IF;
END LOOP;
RETURN V_RETURN;
END;
MYSQL怎样按头字母分组排序 。截取头字符虚拟一个列出来,然后按该列排序即可 。
如:
SELECT id,name,substring(name,1,1) AS firstStr
FROM `testorder`
ORDER BY firstStr
mysql 中英文如何排序文本内容的排序其实是按照字符在字符的字典序的,相当于是先是数字,然后是英文字母 , 英文字母按照a-z的字典序 。
对于中文,也是按照字典序排序的 , 这个汉字字典序可以看作是对应拼音的字典序,其实内部是按照字符集中汉字编码的从小到大顺序,只不过汉字的编码顺序是以拼音的字典序排列的,与拼音字典序的主要不同体现在多音字上,对于一个汉字虽然可以有多个发音,但只有一个内部编码
mysql 查询结果按照字母排序数据库排序只能按字典序来排序mysql字母怎么排序 , 汉字不能用字典序排序 。
mysql字母怎么排序你可以加个字段存拼音或者加个字段存一个int(代表次序)
mysql字母怎么排序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql字母占几个字符、mysql字母怎么排序的信息别忘了在本站进行查找喔 。
推荐阅读
- 包含农村电商如何获得订单数据的词条
- python爬虫怎么犯罪,python爬虫的几种方法
- 平台小野猫露脸直播,平台小野猫露脸直播是真的吗
- c语言主函数可以int吗 主函数可以写在 c 程序的任意位置
- 广州幕墙erp系统,广东幕墙
- 萧亚轩发视频说了什么,萧亚轩现场梗
- 直播带货中最麻烦的问题,直播带货需要避免的问题
- go语言计算熵的函数 go语言len函数
- linux中lsl命令,linux ls常用命令