工作时遇到mysql查询区分大小写的情况,在记忆里mysql查询时不区分大小写的。所以查了一下这方面的问题,总结如下:
如果想要mysql区分大小写
- 创建表时在字段中添加 binary
CREATE TABKE name(
A VARCHAR(10) BINARY
);
- 查询时添加 binary
select * from table_name where filename = binary 'you';
- 在创建表时校对规则设置成大小写敏感的
mysql校对规则一般有这些特征:
- 两个不同的字符集不能有相同的校对规则。
- 每个字符集有一个默认校对规则。例如,utf8默认校对规则是utf8_general_ci。
- 存在校对规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。
-- 查看支持的校验规则:
SHOW COLLATION like 'utf8%';
-- 查看本地的校验规则:
mysql> show global variables like '%coll%';
Collation以 "_ci"结尾的不区分大小写(ci——Case Ignore),以"_bin"或者"_cs"结尾的区分大小写