常见问题

迎接移动互联网新时代

提供企业互联网终端应用解决方案

业务咨询

mysql字段字符集utf8_bin和utf8_unicode_ci的区别

来源:万才科技 | TAG:温州网站建设万才科技 | 2021.05.27

utf8_bin: 对内容区分大小写,可存储二进制内容。
utf8_unicode_ci:内容为可存储unicode编码,ci即case insensitive的缩写,意思为不区分大小写。
utf8_general_cs:即存储的内容字符集普遍兼容模式,cs则是case sensitive的缩写,意为识别时区分大小写。
utf8_spanish_ci:适用于西班牙通用编码,ci不区分大小写。

utf8_turkish_ci:适用于土耳其通用编码。



大小写敏感测试
例如:我们创建一个数据表student,字段(嗯,注意是字段设置的排序规则,而不仅仅是表的排序规则)设置为utf8_bin

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(255) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

INSERT INTO `student` VALUES ('1', 'xiaoming');
INSERT INTO `student` VALUES ('2', 'lily');
INSERT INTO `student` VALUES ('3', 'Xiaoming');
INSERT INTO `student` VALUES ('4', 'Lebron James');
INSERT INTO `student` VALUES ('5', 'Kobe');

mysql> select * from student;
+----+--------------+
| id | name         |
+----+--------------+
1 | xiaoming     |
2 | lily         |
3 | Xiaoming     |
4 | Lebron James |
5 | Kobe         |
+----+--------------+
5 rows in set

此时name字段的字符排序为utf8_bin,此时大小写敏感。
mysql> select * from student where name like '%kobe%';
Empty set
当查询kobe时,Kobe的内容便不会匹配上。

当我们修改name的字符排序为utf8_unicode_ci时,大小写不敏感。则能查询到数据。

mysql> ALTER TABLE `student`
MODIFY COLUMN `name`  char(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL AFTER `id`;

mysql> select * from student where name like '%xiaoming%';
+----+----------+
| id | name     |
+----+----------+
1 | xiaoming |
3 | Xiaoming |
+----+----------+

mysql> select * from student where name like '%kobe%';
+----+------+
| id | name |
+----+------+
5 | Kobe |
+----+------+

      我们在选用字段字符排序时,根据项目存储的数据的使用场景,来选择字符集排序方式。utf8_bin建议存储一些文件二进制内容,或者文件流是使用(预计也很少有这么用的),utf8_unicode_ci个人建议广泛使用,例如存储人物姓名、电子邮箱地址时,对于数据的检索很有用,这也是为什么mysql默认就是兼容大小写不敏感查询的原因吧。utf8_general_cs如有特殊需要,建议存储类似十六进制、md5值时存储,其实如有特殊要求时在检查使用就可以。


网站设计品牌营销

多一份参考,总有益处

联系万才科技,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:15957787012 / 大客户专线:15957787012

我们能给的
远比您想的更多
提供您的电话号码,万才项目顾问将致电联系您。
等待时间:5分钟以内
15957787012

官方微信公众号

15957787012

工作日09:00-21:00
(周末至20:00)

万才科技 WWW.PY12.COM 版权所有

热门搜索:温州网站建设,温州网站制作,温州小程序开发

业务咨询

电话咨询

15957787012

售后服务

18989718601

业务咨询

电话咨询

在线咨询