【问题标题】:Update a record based on a related column from another table根据另一个表中的相关列更新记录
【发布时间】:2013-10-09 21:55:31
【问题描述】:

我有一个表,其中有一列 - 比如说 article_id - 对应于另一个表的主键。见下文。

我想用 Levenshtein 距离填充列 'lev',计算如下:

LEVENSHTEIN(table1.string, table2.title)

...其中table1的article_id对应table2的主键。

我正在使用 Postgres,这个函数是模糊字符串匹配模块的一部分。


表格的相关部分如下所示:

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'

如何做到这一点?

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    对您引用的库模块一无所知,假设该函数存在,这应该可以工作:

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

    【讨论】:

    • 非常简单。感谢您的帮助。
    【解决方案2】:
    UPDATE table1 as t1 SET lev=LEVENSHTEIN(t1.string, t2.title)
    FROM table2 as t2
    WHERE t1.article_id = t2.id
    

    有用的参考:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      • 2011-11-25
      • 2016-06-02
      相关资源
      最近更新 更多