区别MySQL字段内容大小写讲解
admin
2023-05-18 16:22:22
0

下文内容主要给大家带来区别MySQL字段内容大小写讲解,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。

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

将测试过程记录在下面。

数据库版本:MySQL 5.7.11

引用他人博客中内容:

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

  • 两个不同的字符集不能有相同的校对规则。

  • 每个字符集有一个默认校对规则。例如,utf8默认校对规则是utf8_general_ci。

  • 存在校对规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。

查看支持的校验规则:

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

mysql> SHOW COLLATION like 'utf8%';
+--------------------------+---------+-----+---------+----------+---------+
| 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 '%coll%';
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8mb4_unicode_ci |
| collation_database   | utf8mb4_unicode_ci |
| collation_server     | utf8mb4_unicode_ci |
+----------------------+--------------------+

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

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

测试后结果:修改数据库配置后,不会对已经存在的表造成影响,如要生效需要修改特定列的排序规则。优先级大概是这样:列>表>数据库>云服务器

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

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

T表

CREATE TABLE `T` (
  `name` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
mysql> select * from T;
+------+
| name |
+------+
| YOU  |
| You  |
| you  |
| you  |
| yOU  |
+------+

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

CREATE TABLE `T2` (
  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
mysql> select * from T2;
+------+
| name |
+------+
| yOU  |
| you  |
+------+

查询:

T:(未区分大小写)

mysql> select * from T where name = 'you';
+------+
| name |
+------+
| YOU  |
| You  |
| you  |
| you  |
| yOU  |
+------+

T2:(已经区分大小写)

mysql> select * from T2 where name = 'you';
+------+
| name |
+------+
| you  |
+------+
  • 第二种方法:  不修改配置,表结构,而使用如下的查询语句:

T:(未修改表)

mysql> select * from T where name = binary'you';
+------+
| name |
+------+
| you  |
| you  |
+------+

对于以上关于区别MySQL字段内容大小写讲解,如果大家还有更多需要了解的可以持续关注我们的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。

 

相关内容

热门资讯

暗访牛蛙加工厂:专留一批样品应... 澎湃新闻记者 祝江 实习生 栗英鹤牛蛙为何抗生素等兽药成分屡屡超标?养殖、运输过程中,“施药”真的难...
以音乐节恐袭幸存者煎熬3年在遇... 2023 年 10 月 7 日以色列新星音乐节那场突如其来的血腥袭击,改写了无数普通人的命运。8 月...
大佬们啊嵌入式微波炉十大品牌排... 摘要:你好,现在生活都是快节奏了,每家必备微波炉,微波炉也给人们带来很多方便,节省时间。嵌入式微波炉...
中国开关插座十大品牌排行榜大佬... 最佳回答 十大品牌如下:第一个品牌:西蒙,西蒙成立于1916年,总部在西班牙。第二个品牌:西门子,成...
防盗门钥匙塑料盒怎么打开 有一些防盗门的钥匙都会装在一个特制的塑料盒里,这样的塑料盒子装备会显得防盗门的钥匙特别高档。但是这种...
钥匙插不进去锁怎么办(钥匙插不... 钥匙无法插入门锁,有两种情况,一是锁芯内部的弹簧松动,二是锁眼内有杂物。就拿有些小的锁来说,可以根据...
电视机电源指示灯不亮是怎么回事 先确认电视机电源是否接通,若未接入电源请先将电视机电源线插好使其通电。确认电源接通后,对电视机进行开...
浙江宣传评文艺圈“塌房”:人品... 近几年来,文艺圈人品“塌房”事件屡有发生,从言行失范、私德有亏到违法犯罪,当创作者的德行有了污点,其...
伊朗看到了美国的3个软肋 全世界现在哭笑不得。刚扬言要狠狠打击伊朗,打击伊朗的能源基础设施,甚至感觉迫在眉睫、必须要打、不打不...
接连反转!特朗普透露三个信息 特朗普称美伊3日将举行谈判。美国总统特朗普当地时间8月2日,美国总统特朗普谈及伊朗时称,关于霍尔木兹...