REGEXP 还是 LIKE要点
- 纯「包含 / 前缀 / 单字符」用 LIKE 就够了,更快
- LIKE 的 % 等价于「任意长度」,_ 等价于「单个字符」
- 要「开头或结尾」「字符集」「或」就用 REGEXP
- REGEXP 无法利用普通前缀索引,大表慎用于热查询
- 两者都能被 NOT 取反,语义一致
- 简单场景硬上正则属于杀鸡用牛刀
REGEXP 还是 LIKE对照
| 场景 | 推荐写法 | 理由 |
|---|---|---|
| 包含某串 | LIKE '%科技%' | 简单且能走索引 |
| 固定前缀 | LIKE '张%' | 可走前缀索引 |
| 开头正则 | REGEXP '^张' | LIKE 也能胜任 |
| 字符集/或 | REGEXP '[0-9]|北京' | LIKE 表达不了 |
| 区分大小写 | REGEXP BINARY | LIKE 默认也不敏感 |
避坑提醒:口诀:能用 LIKE 解决的别写正则;一旦需要 ^ $ [] | 其中任意一个,就换 REGEXP。