我有一个18000行的表。每个都适合不同的城市或村庄。该表包含每个位置的坐标。
其中一些条目编写错误,包含错误。但我有另一张表格,其中包含所有准确拼写的城市。
是否有更新包含与正确名称匹配表名称的坐标的表?
即
table with coordinates | table with correct name
Pariss | Paris
答案 0 :(得分:1)
如果所有拼写错误都是坐标表中名称的开头或结尾处的额外字符(如示例所示),那么查询应该是这样的简单:
UPDATE table_with_coordinates AS x
SET ... (do your stuff)
FROM table_with_correct_name as y
WHERE y.name LIKE '%' || x.name || '%';
你也可以用正则表达式测试你的勇气,但这意味着很多工作,特别是如果你不熟悉它们。
然而,如果拼写错误可能包含类似'P4ris'的内容,那么要求就会更复杂,并且会升级到模糊字符串比较的范围。我们的想法是测试具有一定数量模式的字符串并对其进行评分。然后你会选择一个重要的等级来认为你是一个拼写错误的字符串。如果您想使用Postgres功能,可以使用a good primer(请务必查看底部的链接)。