gpt4 book ai didi

MySQL街道地址模糊搜索

转载 作者:可可西里 更新时间:2023-11-01 07:05:39 24 4
gpt4 key购买 nike

有谁知道在 MySQL 数据库上进行模糊街道地址搜索的好脚本(或好策略)?关键问题是:

  • 大写(简单——只需使用 LCASE)
  • 标点符号(可以使用 REPLACE;不确定是否有更有效的选项)
  • 缩写(这个很难——street = st,等等)

我希望能够匹配:123 Main st, unit B = 123 Main Street unit b

最佳答案

虽然它并不完美并且可能很慢,但您还是希望通过 REGEXP() 使用正则表达式。

这是匹配大多数情况(以及您的示例)的第一遍正则表达式:

(?isx)                  # search across multiple lines and ignore case
( # full match
( # st number - what about number words like one or two?
\d+
)
\s+ # whitespace
( # street name (one or more words)
[a-z]+
(?:
\s+
[a-z]+
)*
)
\s+ # whitespace
( # street type
al(?:y\.?|ley) # aly, aly. or alley
|
ave(?:\.|nue)? # ave, ave., or avenue
|
b(?lvd\.?|oulevard) # blvd, blvd. or boulevard
|
c(?:t\.?|ourt) # ct, ct. or court
|
cir(?:\c\.?|cle)? # cir, circ, circ. or circle
|
cres(?:\.|cent)? # cres, cres. or crescent
|
dr(?:\.|ive)? # dr, dr. or drive
|
exp(?:y\.?|ressway) # expy, expy. or expressway
|
f(?:wy\.?|reeway) # fwy, fwy. or freeway
|
g(?:rdns\.?|ardens) # grdns, grdns. or gardens
|
h(?:wy\.?|ighway) # hwy, hwy. or highway
|
l(?n\.?|ane) # ln, ln. or land
|
m(?:nr\.?|anor) # mnr, mnr. or manor
|
m(?:trwy\.?|otorway) # mtrwy, wtrwy. or motorway
|
pl(?:\.|ace)? # pl, pl. or place
|
r(?:d\.?|oad) # rd, rd. or road
|
st(?:\.|reet)? # st, st. or street
|
t(?:pk\.?|urnpike) # tpk, tpk. or turnpike
|
ter(?:\r?\.?|race) # ter, ter., terr, terr. or terrace
|
tr(?:l.\?|ail) # trl, trl. or trail
|
pike|park|walk|loop|bay|close|gate|highlands
|
row|way|oval|dell|rise|vale|byway|lawn
)
\,? # optional comma
\s+ # whitespace
( # optional number, unit, apt or floor
(
\# # number
|
unit # unit
|
num(?:\.|ber) # num, num. or number
|
ap(?:t\.?|artment) # apt, apt. or apartment
|
fl(?:\.|oor)? # fl, fl. or floor
)
\s+
\d+
)?
)

哪个会返回:

$1 - 完全匹配

$2 - 门牌号

$3 - 街道名称

$4 - 街道类型

$5 - 单位或 apt 号码(可选)

要在 mysql 中使用它,您需要删除所有注释(从“#”到 eol),删除第一行(切换选项),并将所有内容折叠到没有任何空格的单行。

关于MySQL街道地址模糊搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6003591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com