BINARY 区分大小写要点
- 默认 COLLATE 下,'ABC' 与 'abc' 视为相等
- BINARY 让比较按字节逐位进行,大小写敏感
- 用法:WHERE BINARY 列 = 'Admin',精确匹配大小写
- BINARY 也能写在 ORDER BY 前改变排序的轻重规则
- 只对需要区分的列加 BINARY,全表区分会影响性能
- 区分大小写的需求优先在建表 COLLATE 时定好,少临时补救
BINARY 区分大小写示例
SELECT * FROM user WHERE BINARY username = 'Admin';
-- 默认不区分,下面两条都可能命中同一条记录
SELECT * FROM user WHERE username = 'admin';
避坑提醒:账号体系若要求区分大小写,最好在字段 COLLATE 上直接设成 *_bin,比每条查询都加 BINARY 更省心也更稳。