2013-10-09 144 views
1

我有一个表与一列 - say,article_id - 对应于另一个表的主键。见下文。根据另一个表中的相关列更新记录

我想填充柱“利”与Levenshtein距离,这样计算的:

LEVENSHTEIN(table1.string, table2.title)

...其中表1的article_id的对应表2的主键。

我使用的是Postgres,这个函数是fuzzystrmatch模块的一部分。


表的相关部分是这样的:

table1 
id article_id string lev 
1  134   'ace' 
2  227   'bdg' 
3  425   'hkl' 

table2 
id title 
134 'Some title abc' 
227 'Some title def' 
425 'Some title ghi' 

如何实现这一目标?

回答

2

不知道关于你提到的库模块什么,假设函数存在,这应该工作:

UPDATE table1 AS t1 
SET lev = LEVENSHTEIN(t1.string,t2.title) 
FROM table2 as t2 
WHERE t1.articleid = t2.id 
+0

很简单。感谢您的帮助。 – dmc7z

2
UPDATE table1 as t1 SET lev=LEVENSHTEIN(t1.string, t2.title) 
FROM table2 as t2 
WHERE t1.article_id = t2.id 

有用的参考:

相关问题