MySQL - 校对集

xiaoxiao2021-02-28  57

校对集:数据比较方式;必须在无数据前进行声明,如果有了数据再进行数据修改,那么修改无效!

其有三种格式:

_bin:binary,二进制比较,取出二进制位,一位一位进行比较,区分大小写;_cs:case sensitive,大小写敏感,区分大小写;_ci:case insensitive,大小写不敏感,不区分大小写。

【1】查看数据库所支持的校对集

show collation


【2】对比不同校对集的效果

对比:使用utf8的_bin and _ci来验证不同校对集的效果;

① 创建两张使用不同校对集的表:

CREATE TABLE `my_collate_bin` ( `name` char(1) COLLATE utf8_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin CREATE TABLE `my_collate_ci` ( `name` char(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8

② 分别插入数据:

insert into my_collate_bin VALUES('a','A','B','b'); insert into my_collate_ci VALUES('a','A','B','b');

③ 比较:根据某个字段进行排序-order by 字段名[asc||desc] ;

select * from my_collate_bin ORDER BY name; select * from my_collate_ci ORDER BY name;

可以看到图一是正常排序,图二未区分大小写(一般应用中,默认不区分大小写,使用utf8_general_ci)。

转载请注明原文地址: https://www.6miu.com/read-71356.html

最新回复(0)