MySQL 中 utf8mb4_bin 与 utf8mb4_general_ci 区别

在创建表是,如果字段类型是字符串varchar,则该字段默认的字符集排序规则为utf8mb4_general_ci,也就是说在查询匹配时不区分大小写,例如where name = 'A' 时,会把 A、a 都查出来。

如果要在查询时区分大小写,则把字符集排序规则改为utf8mb4_bin。

ALTER TABLE test MODIFY COLUMN name VARCHAR(20) COLLATE utf8mb4_bin;

这样调整后,在查询时,就会区分大小写。

总结:

在 MySQL 中,utf8mb4_bin 与 utf8mb4_general_ci 均属于 utf8mb4 字符集的排序规则,二者在数据存储上完全一致,都会原样保存大小写、重音等字符差异,不会自动转换或统一格式。

核心区别体现在比较与查询行为:

utf8mb4_bin 按字符二进制编码比较,严格区分大小写、全半角及重音符号,适合密码、唯一编码等需要精确匹配的场景;

而 utf8mb4_general_ci 为不区分大小写的通用排序规则,在查询匹配时会忽略大小写差异,输入 A 可同时匹配到 A 和 a,更适用于普通文本、搜索、用户名等常规业务场景,也是 MySQL 早期版本中 utf8mb4 的默认排序规则。

相关推荐
Codiggerworld3 分钟前
Redis 正式接入 AI:当“最懂速度的数据库“开始解决“记忆问题“
数据库·人工智能·redis
白露与泡影3 分钟前
Redis 正式接入 AI:当“最懂速度的数据库“开始解决“记忆问题“
数据库·人工智能·redis
我不会插花弄玉11 分钟前
3.通用命令【由浅入深-redis】
数据库·redis·bootstrap
腾科IT教育22 分钟前
Oracle OCP和MySQL OCP怎么选?方向对比指南
mysql·oracle·ocp·oracle ocp·ocp怎么选·mysql ocp
大牧师42 分钟前
Mybatis 框架教程
java·数据库·mybatis·数据持久化·orm
有想法的py工程师1 小时前
PostgreSQL【内核】 CBO 优化器的“早停下注”与数学模型失效分析
数据库·postgresql
用户460381291942 小时前
别人都 commit 了,为什么我的 select 还是旧值?图解 MySQL MVCC
mysql
冰暮流星2 小时前
sql之计算
数据库·sql
dishugj2 小时前
HANA集群状态监控
数据库·系统架构
小蒜学长3 小时前
基于Java的公司采购系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·公司采购系统