Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结

Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结

用了这么长时间,发现自己竟然不知道utf_bin和utf_general_ci这两者到底有什么区别。。

ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的;

bin 是二进制, a 和 A 会别区别对待.

例如你运行:

SELECT * FROM table WHERE txt = ‘a‘

那么在utf8_bin中你就找不到 txt = ‘A‘ 的那一行, 而 utf8_general_ci 则可以.

utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。

utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果

utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容

时间: 2024-10-23 13:37:13

Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结的相关文章

【转】Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结

Mysql中utf8_general_ci与utf8_unicode_ci有什么区别呢?在编程语言中,通常用unicode对中文字符做处理,防止出现乱码,那么在MySQL里,为什么大家都使用utf8_general_ci而不是utf8_unicode_ci呢? 用了这么长时间,发现自己竟然不知道utf_bin和utf_general_ci这两者到底有什么区别..ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的;bin 是二进制

MYSQL数据库表排序规则不一致导致联表查询,索引不起作用问题

Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字段ishaspic:新添字段时,报错 [SQL] alter table WorkTask add ishaspic int(10) Null;[Err] 1034 - Incorrect key file for table 'WorkTask'; try to repair it 解决方案:新建

mysql中的where和having子句的区别

mysql中的where和having子句的区别 having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前.而 having子句在聚合后对组记录进行筛选. SQL实例: 一.显示每个地区的总人口数和总面积. SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region 先以region把返回记录分成多个组,这就是GROUP BY的

MySQL中create table as 与like的区别分析

这篇文章主要介绍了MySQL中create table as 与like的区别,结合实例分析了二者在使用中的具体区别与主要用途,需要的朋友可以参考下,具体如下: 对于mysql的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢? 代码如下: create table t2 as select * from t1 where 1=2; as创建出来的t2表(新表)缺少t1表(源表)的索引信息,只有表结构相同,没有索引. 代码如下: cr

mysql中 drop、truncate和delete的区别

mysql中drop.truncate和delete的区别 (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的.并且在删除的过程中不会激活与表有关的删除触发器.执行速度快. (2)表和索引所占空间. 当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小, DELETE操作不会减少表或索引

MySql数据库字段排序规则不一致产生的一个问题

最近项目向MySql迁移,迁移完毕后,在获取用户权限时产生了一个异常,跟踪进去获取执行的语句如下, SELECT PermissionId FROM spysxtPermission WHERE (ResourceCategory = 'BaseUser' AND ResourceId = '003bf4bd072243fa90517ee2bc088cb7' AND Enabled = 1 AND DeletionStateCode = 0) UNION SELECT PermissionId

MySQL字符集与排序规则 北京MySQL DBA学习

MySQL提供了多种字符集和排序规则选择,其中字符集设置和数据存储以及客户端与MySQL实例的交互相关,排序规则和字符串的对比规则相关. 字符集的设置可以在MySQL实例.数据库.表.列四个级别.MySQL设置字符集支持在InnoDB.MyISAM.Memory三个存储引擎.查看当前MySQL支持的字符集的方式有两种,一种是通过查看information_schema.character_set系统表,一种是通过命令show character set查看每个指定的字符集都会有一个或多个支持的排

MySql中varchar(10)和varchar(100)的区别==>>以及char的利弊

一般初学会认为,二者占用的空间是一样的.比如说我存储5个char,二者都是实际占用了5个char了[勘误:varchar在实际存储的时候会多一个byte用来存放长度].但是深入一下,设计数据库的时候,二者一样吗?答案是否定的[至少varchar类型需要在数据之前利用一个或者两个字节来存储数据的长度][二者在内存中的操作方式也是不同的,下面的例子中有体现].看下面的例子.如现在用户需要存储一个地址信息.根据评估,只要使用100个字符就可以了.但是有些数据库管理员会认为,反正Varchar数据类型是

mysql中engine=innodb和engine=myisam的区别

MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持. MyISAM 类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持. InnoDB 提供事务支持以及外键等高级数据库功能. 这样就可以根据数据表不同的用处是用不同的存储类型. 另外,MyISAM类型的二进制数据文件,可以在不同操作系统中迁移. 也就是可以直接从 Windows 系统拷贝到 linux 系统中使用. 修改: ALTER TABLE tablename ENGINE = MyISAM : MyI