2014-10-29 107 views
0

我需要邮政区域(第一个字母)匹配我的字符串的所有邮政编码。MySQL正则表达式为英国邮政地区

例邮政编码:

SW12 3AB 
S12 3AB 

如果我的邮区的字符串是 'S' 应该只返回S12 3AB

如果我的邮政区域字符串是'sw',它应该只返回SW12 3AB

这是我的查询:

SELECT ID, Postcode 
FROM order 
WHERE Postcode REGEXP '^s[0-9].*' 

花时间阅读我看到这个语法没有问题的手册后。 - 邮编必须用我的字符串 开始 - 字符串必须跟一些 - 后

遗憾的是不返回任何记录任何事情都有可能发生。我做错了什么?

+0

可能是你的's'在'^ s [0-9]。*''是小写字母而邮编是大写字母'S'?大多数正则表达式在默认情况下都是区分大小写的。试试''^ [sS] [0-9]'(你可以忽略'。*',因为你不匹配字符串的末尾)。 – funkwurm 2014-10-29 16:07:21

+0

@funkwurm,省略'。*'是一个很好的提示,谢谢。不幸的是,大小写敏感性不是问题。以很多方式尝试...... – Miklos 2014-10-29 16:15:32

回答

0

我发现了这个问题,我觉得很傻。

没有英国邮政编码区域“S”,因此它没有找到任何匹配。

它适用于这些“N”和“NW”以及所有其他有效区域。

如果有办法,我很乐意让这篇文章被删除。道歉。