区别MySQL字段内容大小写讲解

  

数据由Oracle迁入MySQL,由于之前甲骨文区分大小写,MySQL的配置使用了默认配置,导致一些数据导入失败,有的唯一键报错,冲突。

将测试过程记录在下面。

数据库版本:MySQL 5.7.11

引用他人

校对规则一般有这些特征:

<李>

<李>

<李>

查看支持的校验规则:

区别MySQL字段内容大小写讲解

mysql>, SHOW  COLLATION  like  & # 39; utf8%& # 39;;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +   |,Collation ,,,,,,,,,,,,,,, |, Charset  |, Id , |, Default  |, Compiled  | Sortlen  |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +   |,utf8_general_ci ,,,,,,,,, |, utf8 ,,, |,, 33, |, Yes ,,,, |, Yes ,,,,, |,,,,,,, 1 |   |,utf8_bin ,,,,,,,,,,,,,,,, |, utf8 ,,, |,, 83, |,,,,,,,,, |, Yes ,,,,, |,,,,,,, 1 |   |,utf8_unicode_ci ,,,,,,,,, |, utf8 ,,, |, 192, |,,,,,,,,, |, Yes ,,,,, |,,,,,,, 8 |   …   |,utf8mb4_general_ci ,,,,,, |, utf8mb4  |,, 45, |, Yes ,,,, |, Yes ,,,,, |,,,,,,, 1 |   |,utf8mb4_bin ,,,,,,,,,,,,, |, utf8mb4  |,, 46, |,,,,,,,,, |, Yes ,,,,, |,,,,,,, 1 |   |,utf8mb4_unicode_ci ,,,,,, |, utf8mb4  |, 224, |,,,,,,,,, |, Yes ,,,,, |,,,,,,, 8 |   |,utf8mb4_icelandic_ci ,,,, |, utf8mb4  |, 225, |,,,,,,,,, |, Yes ,,,,, |,,,,,,, 8, | 查看本地的校验规则:   mysql>, show  global  variables  like  & # 39; %科尔% & # 39;;   + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +   |,Variable_name ,,,,,,, |, Value ,,,,,,,,,,,, |   + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +   | |,collation_connection  utf8mb4_unicode_ci  |   |,collation_database ,, |, utf8mb4_unicode_ci  |   |,collation_server ,,,, |, utf8mb4_unicode_ci  |   + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +

生产中数据库使用的编码为utf8mb4,校验规则为,utf8mb4_unicode_ci,对大小写不敏感

如果需要大小写敏感,需要将排序规则修改为utf8mb4_bin。

。优先级大概是这样:列在表的在数据库的在云服务器

有两种方法使查询区分大小写:

<李>

第一种方法为修改列级别的校验规则为

T表

CREATE  TABLE “T”, (   “名字”,才能varchar (20), COLLATE  utf8mb4_unicode_ci  DEFAULT  NULL   ),引擎=InnoDB  DEFAULT  CHARSET=utf8mb4 整理=utf8mb4_unicode_ci   mysql>, select  *,得到T;   + - - - +   | |,name    + - - - +   |,你|   |,你|   |,你|   |,你|   |,你|   + - - - +

T2表:将列校对规则修改为

CREATE  TABLE 《终结者2》,(   “名字”,才能varchar (20), CHARACTER  SET  utf8mb4  COLLATE  utf8mb4_bin  DEFAULT  NULL   ),引擎=InnoDB  DEFAULT  CHARSET=utf8mb4 整理=utf8mb4_unicode_ci   mysql>, select  *,得到T2;   + - - - +   | |,name    + - - - +   |,你|   |,你|   + - - - +

查询:

T:(未区分大小写)

mysql>, select  *,得到T  where  name =, & # 39;你们# 39;;   + - - - +   | |,name    + - - - +   |,你|   |,你|   |,你|   |,你|   |,你|   null   null   null   null   null   null   null   null   null   null   null   null   null

区别MySQL字段内容大小写讲解