使用多个匹配字符串

时间:2016-04-19 13:19:19

标签: mysql

我正在尝试在我的地址/联系人表格中标准化街道名称。我想为#34; Saint" vs" St"。我有几个100圣徒的名单。我要更新的表格很大,我想做一个最有效的更新,让我实际上说用圣地代替圣,其中地址fiekd包含任何"圣"后跟任何以下名称(Name1,...,NameN)

即使只是我所做的选择非常慢,我甚至尝试了一个正则表达式。

Address Regexp 'Saint (Saint1|...|SaintN)'

所以我正在寻找一种有效的方法来取代" St"与"圣"在数百万条记录中使用" St"与几百个可能的圣名联合起来。

1 个答案:

答案 0 :(得分:0)

好吧,我看到实现你想要的唯一明确的方法是使用IN,但这仍然会很慢:

UPDATE table
SET address = REPLACE(address, 'st', 'saint')
WHERE address IN ('st name1','st name2','st name3')

您可以尝试通过为地址提供索引来加快此查询速度。这将使用地址列进行查询,以便更快地过滤。

如果你有2百万行,我仍然怀疑这会很慢。