获取地址列表没有英国地址 mysql
Posted
技术标签:
【中文标题】获取地址列表没有英国地址 mysql【英文标题】:Get list of address dont have UK address mysql 【发布时间】:2020-08-28 09:17:39 【问题描述】:我有一个 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)$'
如何修复这个查询?
【问题讨论】:
如何定义邮政编码? 剥离最后 2 个标记(使用 SUBSTRING_INDEX)并测试它们是否与邮政编码模式匹配。 @Akina 有空格? 我不知道什么是英国邮政编码模式。 @ShijinTR: 你不只是想从正则表达式中删除前导^
,所以它匹配在字符串的末尾而不是整个字符串?
【参考方案1】:
我会假设邮政编码正则表达式是正确的。
REGEXP '^([A-PR-UWYZ0-9]...|GIR 0AA)$'
______ _
您需要删除我在上面强调的“锚点”(^
)。这不是“不”。相反,这样否定:
NOT REGEXP '([A-PR-UWYZ0-9]...|GIR 0AA)$'
___ _
Akina 建议先通过SUBSTRING_INDEX
提取可能会加快查询速度。
【讨论】:
但是我们不知道字符串的确切长度 @ShijinTR - 如果你知道空格的数量,那么你可以使用SUBSTRING_INDEX(... ' ', -2)
来获取最后2个单词。以上是关于获取地址列表没有英国地址 mysql的主要内容,如果未能解决你的问题,请参考以下文章