MySQL 大小写

MySQL 大小写

Linux

  1. 数据库名、表名和表的别名 是严格区分大小写的;

  2. 列名与列的别名在所有的情况下均是忽略大小写的;

  3. 表中字符格式的数据是忽略大小写的;

Windows

MySQL在Windows下都不区分大小写。

在查询时区分字段值的大小写

  1. 创建时设置 BINARY 属性,查询时可以区分大小写:
1
2
3
CREATE TABLE T(
A VARCHAR(10) BINARY
);
  1. 使用 alter 增加 BINARY 属性:
1
2
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
ALTER TABLE `tablename` MODIFY COLUMN `cloname` CHAR(45) BINARY;
  1. 在查询时指定大小写“敏感”,加关键字“BINARY”
1
2
3
SELECT * FROM TABLE WHERE FIELDS LIKE BINARY '%FIND%'
select id from TABLE where BINARY id='1111';
select id from TABLE where id= BINARY '1111';
  1. 修改 collate 字符集

collate 规则:

  • *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的
  • *_cs: case sensitive collation,区分大小写
  • *_ci: case insensitive collation,不区分大小写
1
2
3
4
5
6
mysql> show variables like 'collation\_database';
+--------------------+-----------------+
| Variable_name | Value |
+--------------------+-----------------+
| collation_database | utf8_general_ci |
+--------------------+-----------------+

Collation 以 “_ci”结尾的不区分大小写(ci:Case Ignore),以”_bin”或者”_cs”结尾的区分大小写

将Collation改为 utf8_bin(大小写敏感的)

可以为库、表、列指定Collation。优先级为 列>表>库


MySQL 大小写
https://flepeng.github.io/041-MySQL-31-字段-MySQL-VALUE-和-VALUES-的区别/
作者
Lepeng
发布于
2021年3月7日
许可协议