MySQL设置字段内容大小写敏感

MySQL的COLLATE支持以下几种常用编码:

  • utf8mb4_unicode_ci - 基于 Unicode 排序规则,不区分大小写。
  • utf8mb4_general_ci - 简单排序规则,不区分大小写。
  • utf8mb4_bin - 二进制比较,区分大小写。
  • utf8mb4_0900_ai_ci - MySQL 8.0+ 的 Unicode 9.0 标准排序规则。

如不设置,在MySQL 8.4.4版本中,默认是utf8mb4_0900_ai_ci编码,在查询数据时不区分大小写。如以下两条语句的查询结果一样:

1
2
select * from stock_trans where tran_type = 'S';
select * from stock_trans where tran_type = 's';

可以全局设置COLLATE的编码为utf8mb4_bin。在my.cnf(Linux)配置文件中添加:

1
2
3
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_bin

然后重启MySQL,这样新建库或表时默认数据内容区分大小写。