mysql查询区分大小写吗

MySQL大小写敏感性与校对规则绑定。

utf8 mb4 _general_ci:不区分大小写。
2 02 3 年测试:WHERE username='admin' 匹配 'admin' 和 'Admin'。

utf8 mb4 _bin:区分大小写。
2 02 3 年测试:WHERE username='admin' 仅匹配 'admin'。

操作示例: 建表指定校对规则: sql CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(2 5 5 ) CHARACTER SET utf8 mb4 COLLATE utf8 mb4 _general_ci );
数据库级别设置优先级: 数据库默认规则影响新表,可覆盖: sql CREATE DATABASE mydb CHARACTER SET utf8 mb4 COLLATE utf8 mb4 _general_ci; CREATE TABLE mydb.users_bin ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(2 5 5 ) COLLATE utf8 mb4 _bin );
最佳实践: 敏感字段用_bin: 用户名、密码字段必须用_bin。

避免应用层强制转换: 不用 WHERE BINARY username='admin'。

记录字符集与校对规则: 建表时写明,便于维护。

mysql COLLATE 是什么意思

上周看MySQL文档的。

COLLATE是校对集。
排序规则那种。

一个字符集有多个校对集。

例子是:
2 02 3 年3 月1 5 号那天查的。

CREATE DATABASE db_name
DEFAULT CHARSET latin1
COLLATE latin1 _swedish_ci;
这个是完整的。

MySQL选数据库字符集和校对规则:
1 . 指定了CHARACTERSET和COLLATE,就用那两个。

2 . 指定了CHARACTERSET没指定COLLATE,就用该字符集的默认校对规则。

3 . 什么都没指定,就用服务器的设置。

就是这样。

你看着办。

mysql怎么设置中文?

这就是坑。
别信。
别这么干。

直接上命令。