大小写与取反要点
- 默认大小写不敏感,'apple' 能命中 'Apple'
- 加 BINARY 关键字可强制区分大小写
- NOT REGEXP 取反,拿到所有不匹配的行
- 大小写行为实际受列 COLLATE 影响,别想当然
- BINARY 会让索引失效,大表慎用
- 取反常用于「排除一批脏数据」的清洗场景
大小写与取反示例
-- 默认不区分大小写
SELECT name FROM goods WHERE name REGEXP 'apple';
-- 强制区分:只命中小写 apple
SELECT name FROM goods WHERE name REGEXP BINARY 'apple';
-- 取反:名字不以数字开头
SELECT name FROM member WHERE name NOT REGEXP '^[0-9]';
避坑提醒:线上要精确区分大小写时记得 BINARY,但它会绕过索引,超大表上先在从库验证性能。