MySQL-自定义排序函数

字符集(Charset)

ASCII

基于拉丁字母的计算机编码,通用单字节编码,1个字节代表1个字符。主要针对英语和西欧语言。汉子为多字节数据,ASCII是无法编码中文汉子的。

GB2312

国标编码,由中国制定编码字符集,一般用2个字节代表一个字符,GB2312对中文进行分区分级编码,共收录7000多个。

Unicode

为了统一各种语言编码规则而生,又被称为 统一编码。统一使用2个字节代表1个字符,特殊字符采用4字节。

UTF-8

为了解决Unicode编码的一些缺陷,比如英文及符号属于单字节字符,采用2字节编码,浪费空间。UTF-8字符属于动态编码字符集,是在Unicode基础上进行改进的一种编码规则。根据不同数字大小进行编码为1-6个字节,英文及符号:1字节,中文:3字节,生僻字:4-6字节。

排序方式(Collation)

collation 用于指定数据集的排序规则,以及字符集的比对规则,当我们在进行order by 时,mysql服务器会按照设置的collation进行比对数据。

分类

  • < character set> _ <language/other> _ <ci/cs>
    如:utf8_general_ci , 表示字符集为utf-8,不区分大小写(ci, case insensitive), utf-8没有cs(case sensitive)。

同一个字符集的不同collation的区别在于 排序,比对精确度以及性能三方面。
精准度:utf8_unicode_ci > utf8_general_ci
性能:utf8_general_ci > utf8_unicode_ci

在ci情况下,比如使用like “%ab%” , 那么将匹配出 ab, aB, Ab, AB 相关的信息。

  • < character set>_bin
    utf8_bin: 将字符串中每一个字符用二进制数据存储,区分大小写。

select 机制

MySQL 函数

window 文件排序规则

结合 ORDER BY 实现精准排序函数

排序函数优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值