<p>phpMyAdmin的查找框仅支持LIKE模糊匹配,不支持正则;真正可用REGEXP/RLIKE的地方是手动编写SQL语句,如SELECT FROM users WHERE name REGEXP '^A.[0-9]$',需注意转义、字符集及MySQL版本限制。</p>
phpmyadmin 本身不支持在 sql 查询框里直接用 regexp 做“界面级全文搜索”,它没有类似编辑器的「查找所有匹配项高亮」功能;你真正能用正则的地方,只在 sql 执行层——也就是写 select ... where column regexp 'pattern' 这类语句时。
phpMyAdmin 的「查找」框不认正则,只支持模糊匹配
顶部工具栏那个带放大镜图标的「查找」框(Find in table),底层调用的是 LIKE,不是 REGEXP。输入 ^admin 或 d{4} 不会生效,只会字面匹配字符串 ^admin。
- 它等价于
WHERE column LIKE '%your_input%'(前后自动加 %) - 想查开头是 admin 的记录?输
admin%,但这是通配符,不是正则 - 想查含数字+字母组合?
LIKE没法表达[a-z]+d+这种逻辑
真要用正则,必须手写 SQL + REGEXP 或 RLIKE
MySQL 的正则能力由 REGEXP(或别名 RLIKE)提供,phpMyAdmin 完全支持执行这类语句,但得你自己写清楚语法和转义。
-
SELECT * FROM users WHERE name REGEXP '^A.*[0-9]$'—— 匹配以 A 开头、结尾是数字的 name - 注意 MySQL 正则默认不区分大小写,要区分得加
BINARY:name REGEXP BINARY '^[A-Z]' - 特殊字符如点号
.、星号*、问号?在正则里有含义,如果想匹配字面量,需双反斜杠转义:email REGEXP 'example\.com' - MySQL 8.0+ 支持更完整的 POSIX ERE,但老版本(如 5.7)仅支持基本正则子集,不支持
\d、\s,得写成[0-9]、[[:space:]]
常见踩坑:中文、emoji 和多字节字符处理
MySQL 的 REGEXP 对 UTF-8 字符支持较弱,尤其在非 utf8mb4 排序规则下容易漏匹配或报错。
- 确保字段用的是
utf8mb4_unicode_ci或utf8mb4_0900_as_cs(MySQL 8.0+) - 查中文时别依赖
[u4e00-u9fa5]—— MySQL 不识别 Unicode 范围写法,改用字符集感知方式,比如:name REGEXP '[一-龥]+'(仅限部分排序规则有效) - 含 emoji 的字段(如 ?),
REGEXP '.'可能只匹配到前半部分 surrogate pair,建议先用LENGTH()和CHAR_LENGTH()确认实际字符数 - 性能上,
REGEXP几乎无法走索引,大数据表慎用,优先考虑加生成列+索引替代
正则真正的分水岭不在 phpMyAdmin 界面,而在你写的那条 SQL 里是否符合 MySQL 的正则引擎限制,以及字符集是否对齐。很多人卡住,其实是因为在查找框里试了十次 ^abc,却没意识到那里压根不跑正则引擎。
立即学习“PHP免费学习笔记(深入)”;



















