我正在尝试在 sql 中运行以下语句,但没有返回任何行。我知道我的正则表达式是正确的,它应该能够获取模式(即 H4A2H5),但事实并非如此。我不确定我的执行是否有问题
select * from test
where postal_code REGEXP '^[A-Za-z]\d[A-Za-z][ -]?\d[A-Za-z]\d$';
你遗漏了一件事,而使用了其他错误的东西。
REGEXP
执行比较并返回布尔值[[:digit:]]
因此您要查找的查询如下:
select *
from test
where
postal_code REGEXP '^[A-Za-z][[:digit:]][A-Za-z][ -]?[[:digit:]][A-Za-z][[:digit:]]$' = 1;
检查其他字符类的文档:https://dev.mysql.com/doc/refman/8.0/en/regexp.html#regexp-syntax(向下滚动一点)