仅在sql中更改时才更新值

时间:2018-02-21 15:43:09

标签: sql postgresql

我有一张80000-90000条记录的表格,其中包含一个id字段和一个相关性分数字段。 有一个python程序可以计算每个id的相关性分数。我想仅在python程序计算的相关性分数与数据库中存在的分数不同时才更新数据库中的记录。 我使用的数据库是postgres。

例如 - 初始数据库状态是 Id - relevant_score 1 - 23 2 - 12 3 - 14 假设通过python程序为id = 2计算的新相关性得分为15,并且id = 1和id = 3的得分计算为23和14(与之前相同) 我想只为id = 2写更新查询,所以新的数据库状态将是 Id - relevant_score 1 - 23 2 - 15 3 - 14

1 个答案:

答案 0 :(得分:1)

假设该表名为scores以及字段idrelevance,您可以像这样更新一行:

UPDATE scores
SET relevance = <new value>
WHERE id = 42
  AND relevance <> <new value>;

只有在值发生变化时才会更新行。

相关问题