首页 > 解决方案 > 获取地址列表没有英国地址 mysql

问题描述

我有一个 MySQL 表包含英国地址列表,我试图获取地址列表没有邮政编码。

在此处输入图像描述

在列表中,我们可以看到其中一些最后没有邮政编码。

我写了一个查询如下,并没有得到预期的结果。

select * from property_address WHERE property_address
REGEXP '^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$'

如何修复此查询开始工作?

标签: mysqlregexpostal-code

解决方案


我会假设邮政编码正则表达式是正确的。

    REGEXP '^([A-PR-UWYZ0-9]...|GIR 0AA)$'
    ______  _

您需要删除^我在上面强调的“锚”( )。这不是“不”。相反,因此否定:

NOT REGEXP  '([A-PR-UWYZ0-9]...|GIR 0AA)$'
___         _

Akina 提出的先提取 via 的建议SUBSTRING_INDEX可能会使查询更快。


推荐阅读