mysql如何强制区分大小写

SELECT distinct name FROM users 这样SELECT distinct name 如何强制区分大小写呢?

bash 复制代码
SELECT DISTINCT BINARY name FROM users;

mysql的where条件的=号是不区分大小写的吗

-- 强制区分大小写,无论字段默认校对规则如何

bash 复制代码
SELECT * FROM users WHERE BINARY name = 'Alice'; -- 只匹配 'Alice'

默认情况下(大多数场景),不区分大小写常见的字符集(如 utf8、utf8mb4)默认使用的校对规则是 ci 结尾的(ci = Case Insensitive,不区分大小写),例如 utf8_general_ci、utf8mb4_general_ci。此时,= 比较会忽略大小写,例如:

bash 复制代码
-- 假设 name 字段的校对规则是 utf8_general_ci
SELECT * FROM users WHERE name = 'Alice';
SELECT * FROM users WHERE name = 'alice'; -- 与上面查询结果相同

如果使用 bin 结尾的校对规则,则区分大小写若字段的校对规则是 bin 结尾的(bin = Binary,二进制比较),例如 utf8_bin、utf8mb4_bin,则 = 会严格区分大小写,因为它比较的是字符的二进制编码(不同大小写的字符二进制值不同)。例如:

bash 复制代码
-- 假设 name 字段的校对规则是 utf8_bin
SELECT * FROM users WHERE name = 'Alice'; -- 只匹配 'Alice'
SELECT * FROM users WHERE name = 'alice'; -- 只匹配 'alice'(与上面结果不同)
相关推荐
广州灵眸科技有限公司3 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
Cloud云卷云舒5 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
憧憬成为web高手6 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学6 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh8 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
用户71333585156249 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
z123456789869 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD9 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo9 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
用户713335851562410 小时前
MySQL - InnoDB 的 Buffer Pool
mysql